WCF Невозможно установить соединение, потому что целевой компьютер активно отказался - PullRequest
6 голосов
/ 12 мая 2011

Я только что реализовал простой сервер WCF, используя net.tcp.

Во-первых, я использую 127.0.0.1 в качестве адреса сервера и клиента, способного подключиться к службе WCF.

Все в порядке. Но когда я пытаюсь использовать внутренний IP 192.x.x.x, я получаю сообщение об ошибке:

Невозможно установить соединение, потому что целевой компьютер активно отказал в этом

Есть идеи, что может вызвать это?

С наилучшими пожеланиями

PS: я отключил аутентификацию на WCF. Даже брандмауэр отключить все ... Не работал ...

Ответы [ 5 ]

6 голосов
/ 18 августа 2014

Ну, я получил это сообщение об ошибке, когда я забыл установить необходимые компоненты. см. ссылку Настройка службы WCF с помощью netTcpBinding

(краткое изложение шагов) ...

  • Перейти в «Программы и компоненты» (обычно на панели управления)
  • Перейти к «Включение или отключение функций Windows»
  • (при условии VS2012) Перейти к «.NET Framework 4.5 Advanced Services» -> «Службы WCF»
  • Включить «Активация TCP»
6 голосов
/ 12 мая 2011

Используете ли вы 192.x.x.x как на клиенте, так и на сервере? Я помню, как видел проблему, когда для TCP имена клиентов и серверов должны были совпадать (что-то, связанное с одним из свойств сообщения), поэтому, если вы определили службу с "localhost", а клиент с ней возникнет проблема .

4 голосов
/ 30 мая 2012

Физические адреса клиента и службы могут отличаться, если логический адрес совпадает, а конечная точка сервера настроена с «listenUri», а поведение клиента настроено на использование адреса <clientVia>.В нашем случае это требуется для конфигурации нашего прокси / брандмауэра.Фактически клиент вызывает брандмауэр, а сервер локально прослушивает перенаправленный запрос.

Для службы, размещенной на IIS, проверьте следующее:

  1. Пул приложений запущен ивыглядит правильно (.NET 4 и т.д. / безопасность)
  2. Для NET.TCP убедитесь, что «Разрешенные протоколы» на веб-сайте / в приложении (с помощью расширенных настроек) настроены правильно: например, http, net.tcp

Для службы, расположенной не в IIS, может потребоваться настроить резервирование пространства имен (URLACL).http://msdn.microsoft.com/en-us/library/ms733768.aspx

Также убедитесь, что запущены соответствующие службы Windows, например прослушиватель Net.Tcp.

1 голос
/ 12 февраля 2013

Если вы работаете из Visual Studio в режиме отладки, убедитесь, что номера портов вашего решения совпадают.Я видел несколько случаев, когда у меня были выбраны Свойства> Интернет> Автопоставка порта, и конечная точка, в данном случае моего приложения silverlight, не соответствовала автоматически сгенерированному порту.Я обычно меняю порт на 1318 в моем .web.

0 голосов
/ 30 мая 2018

Сегодня я узнал, что эта ошибка также будет отображаться, если у вас есть циклическая ссылка в вашем классе обслуживания WCF. У меня был метод, который бесконечно вызывал себя и вызывал это сообщение об ошибке, что привело меня сюда.

Так что, если ни одно из других предложений не сработает, проверьте свой код, чтобы убедиться, что вы выполняете какие-либо рекурсивные функции, и убедитесь, что вы не попали в бесконечный цикл.

...