2011-05-12 2 views
2

Я только что реализовал простой сервер WCF, используя net.tcp.WCF Соединение не может быть сделано, потому что целевая машина активно отказалась

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

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

No connection could be made because the target machine actively refused it

Любая идея, что может вызвать это?

Пожелания

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

+0

Можете ли вы поделиться исключение STA ск? – amit

ответ

6

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

+1

Да ... Вы правы. Локальное представление Ip должно совпадать с обеих сторон ... Спасибо – setiGuy

4

Адреса физических клиентов и услуг могут отличаться, если логический адрес одинаков, а конечная точка сервера настроена с помощью «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.

+2

«Также убедитесь, что запущены соответствующие службы Windows, например, прослушиватель Net.Tcp». Если бы у меня остались какие-то волосы, то уже было бы вырвано. Спасибо, что выбрал меня из моих страданий! –

1

Если вы работаете из визуальной студии в режиме отладки, убедитесь, что номера портов вашего решения совпадают. Я видел несколько экземпляров, в которых я выбрал Properties> Web> Auto-Assign Port, и конечная точка, в этом случае мое приложение silverlight не совпало с автоматически созданным портом. Обычно я меняю порт на 1318 в моем .web.

5

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

(резюме шагов) ...

  • Перейти к "Программы и компоненты" (обычно в панели управления)
  • Перейти к "Turn Windows, или отключение компонентов"
  • (при условии, VS2012) Перейти к ".NET Framework 4.5 Advanced Services "->" WCF Services"
  • Включить "TCP Activation"
+0

привет @ barrypicker: Я сделал все настройки на моем промежуточном сервере, как сказал вам, но все же я получаю такую ​​же ошибку, можете ли вы направить меня на это? – Developer

+0

@TheProgrammer - проверьте ограничения брандмауэра на промежуточном сервере. Проверьте предыдущие ответы от carlosfigueira, PeterX и Moby Stunt Double. Проверьте URL-адрес, включая порт. Кроме того, попробуйте подключиться к сервису с помощью таких инструментов, как Fiddler для проверки службы WCF. – barrypicker

Смежные вопросы

 Смежные вопросы