У меня проблема с Windows 8 x 64, а также с ОС Windows 7 x 64. У меня есть простая служба WCF, которая использует привязку net.tcp.WCF net.tcp - Соединение отклонено целевой машиной
Я следовал много статей, чтобы написать эту простую услугу в том числе это следующие на MSDN: Hosting and Consuming WCF services
Мои службы и файлы конфигурации точно, как указано в статье выше.
После установки этой службы WCF с помощью InstallUtil.exe в качестве службы Windows , я вижу, что служба устанавливается правильно, а ее работает без ошибок. Я попытался добавить следы на OnStart и OnStop методы службы Windows и не нашел ничего плохого. Как только я попытаюсь ссылаться на эту конечную точку из другого решения, я получить следующую ошибку.
Не удалось подключиться к net.tcp: // localhost: 8523/Inbound. Соединение продолжалось в течение 00: 00: 00.9531494. Код ошибки TCP 10061: Соединение не может быть выполнено, потому что целевая машина активно отклонила его 127.0.0.1:8523.
Я попытался большинство должностей, связанных с этим вопросом через Интернет, а также я попытался открытия брандмауэры, снимите установку антивирусного программного обеспечения, пробовал разные порты, явно созданные входящие и исходящие правила для этих портов в брандмауэре, и т. д. Тем не менее я не могу получить доступ к этой службе Windows, в которой размещается моя служба WCF на основе net.tcp. Включены службы совместного доступа к порту TCP и услуги адаптера TCP-плеера, а также я включил ненужные функции Windows, необходимые для запуска этих служб TCP.
Я вижу, что я всегда могу получить доступ к этой службе в том же решении в другом проекте, потому что Visual Studio немедленно создает Wcf Service Host (WcfSvcHost), когда я пытаюсь ссылаться на эту службу, которая находит все конечные точки в весь проект в текущем решении и загружает их. Пока этот хост работает, я также могу ссылаться на эту услугу и на другое решение без проблем.
Служба Windows, в которой находится моя служба, также такая же, как и указанный код. Очевидно, что это создает экземпляр ServiceHost и запускает его. Я проверил это с некоторыми журналами, что он успешно выполняется при запуске службы. Но я не могу увидеть, что этот процесс запущен в Диспетчере задач, когда начинается моя служба. Я мог видеть эту службу, когда Visual Studio запускает ее, пока я отлаживаю то же решение или пытаюсь ссылаться в том же решении, что упоминалось выше.
Теперь, мой вопрос: должен ли я видеть этот сервис WcfSvceHost в диспетчере задач при запуске моего сервиса? Полагаю, я должен. Пожалуйста, поправьте меня, если я ошибаюсь.
Должен ли я предоставлять какие-либо специальные разрешения моей службе Windows для запуска этой службы ServiceHost или проблема совсем другая? Я не замечаю здесь что-то очень очевидное? Любая помощь будет высоко оценена. Благодарю.
Вот мой конфигурационный файл.
<system.serviceModel>
<bindings />
<client />
<services>
<service name="MyWcfServiceLibrary.WCFService">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="" name="TCPEndPoint" contract="MyWcfServiceLibrary.IWCFService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" name="mexEndPoint" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://127.0.0.1:8523/MyWCFService" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Вопрос был глупой ошибкой здесь. Мои извинения. Я не смог опубликовать код класса сервиса, потому что переполнение стека не позволяло мне. В myServiceHost = new ServiceHost (typeof (MyWCFService)) я ошибочно ссылался на класс службы Windows вместо службы WCF. Именно по этой причине он не создавал хост службы WCF. Ария, я ценю вашу помощь. Благодарю. – VipinM