Не удалось подключиться к net.tcp: попытка подключения продолжалась в течение промежутка времени

Вопрос:На удаленной машине сборки я получаю следующую ошибку при запуске my unit test. Метод тестирования MyNameSpace1.MyNameSpace2.Service.Test.MyPath.XYZServiceTest.FindRecord выбрал исключение: System.ServiceModel.EndpointNotFoundException: Не удалось подключиться к net.tcp://localhost/MyABCServices/XYZService.svc. Попытка подключения продолжалась в течение времени 00: 00: 02.0086605. Код ошибки 10061 TCP: соединение не может быть выполнено, потому что целевой компьютер активно отклонил его 127.0.0.1:808. --- > System.Net.Sockets.SocketException: соединение не

Вопрос:

На удаленной машине сборки я получаю следующую ошибку при запуске my unit test.

Метод тестирования MyNameSpace1.MyNameSpace2.Service.Test.MyPath.XYZServiceTest.FindRecord выбрал исключение:
System.ServiceModel.EndpointNotFoundException: Не удалось подключиться к net.tcp://localhost/MyABCServices/XYZService.svc. Попытка подключения продолжалась в течение времени 00: 00: 02.0086605. Код ошибки 10061 TCP: соединение не может быть выполнено, потому что целевой компьютер активно отклонил его 127.0.0.1:808. — > System.Net.Sockets.SocketException: соединение не может быть выполнено, потому что целевой компьютер активно отклонил его 127.0.0.1:808

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

Что я могу сделать, чтобы отладить эту ошибку? Я читал такие вещи, как проверка стены огня и т.д. Но я не знаю, как это сделать? Я не могу проверить, работает ли служба Windows для этой службы на машине сборки. Я попытался войти в машину сборки или подключить свой IIS к этой удаленной машине, но я не мог.

Лучший ответ:

Самая распространенная проблема для меня – это приложение для прослушивателя Windows Service Net.Tcp не работает на хостинге.

Также проверьте свое веб-приложение IIS, чтобы убедиться, что Enabled Protocols включает net.tcp. Например, у меня есть “http, net.tcp”, и в моих привязках у меня есть “http: 94:, net.tcp: 194:”

Я не знаю, какой хороший способ дистанционно проверить правильность настройки IIS или работу службы Windows. У вас нет администратора сервера, который может посмотреть на эти значения для вас?

Ответ №1

Запуск службы адаптера прослушивателя Net.Tcp устранил проблему.

Ответ №2

Является ли 127.0.0.1:808 фактическим IP-портом, сообщенным в ошибке? Если это так, вам нужно исправить IP (127.0.0.1 является синонимом localhost, так что это будет ваш локальный компьютер).

В противном случае это выглядит как проблема с брандмауэром.

Существует два общих источника брандмауэра:

  • Маршрутизатор
  • OS

Брандмауэры маршрутизатора обычно находятся на маршрутизаторе, который подключает внутреннюю сеть к Интернету. В этих случаях вам (или кому-то с доступом) необходимо будет войти в маршрутизатор и переслать порт на IP для машины. Это требуется только в том случае, если два компьютера, пытающихся связаться, не находятся в одной и той же внутренней сети.
Например, если ваш компьютер подключается через Интернет к серверу, требуется настройка перенаправления портов. Если оба компьютера находятся в одной и той же сети в одном офисе, то переадресация портов не требуется (случаи, когда это неверно, распространены в крупных компаниях, но тогда есть ИТ-или сетевое лицо для решения проблем с портом).

Предполагая, что ваш сервер работает под управлением Windows, вам потребуется кто-то с доступом администратора (?) для входа в систему и либо открыть порт, либо разрешить вашей службе принимать входящие запросы. Поскольку вы указали, что у вас нет доступа к серверу, я бы предложил, чтобы люди, отвечающие за сервер, проверяли конфигурацию.

Ответ №3

Как я прочитал, “unit test”, очевидно, ожидает конечную точку WCF net.tcp на каком-то адресе localhost. Итак, для этого вы можете либо

  • Добавьте требуемую услугу на сервере сборки, который может быть общим сервером или принадлежащим другой команде, или какой-либо другой проблеме, к которой я не привязан, или
  • Измените unit test, чтобы он не ожидал реальной живой службы WCF, а был издевательством или фальшивкой.

I (очевидно) рекомендую второй вариант.

Оцените статью
Добавить комментарий