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

на удаленной машине сборки я получаю следующую ошибку при запуске модульного теста.

метод тестирования MyNameSpace1.MyNameSpace2.Услуга.Тест.Путь mypath.XYZServiceTest.FindRecord бросил исключение: Система.Средство servicemodel.EndpointNotFoundException: не удалось подключиться к сети.tcp://localhost / MyABCServices / XYZService.ВПВ. Попытка подключения продолжалась в течение периода времени 00:00: 02.0086605. Код ошибки TCP 10061: подключение не может быть, т. к. конечный компьютер отверг 127.0.0.1:808. --- >Система.Сеть.Розетки.SocketException: не удалось установить соединение, поскольку целевая машина активно отказалась от него 127.0.0.1: 808

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

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

4 ответов


наиболее распространенной проблемой для меня является Windows Service Net.Адаптер прослушивателя Tcp не работает на хост-компьютере.

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

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


Starting the Net.Tcp Listener Adapter service has fixed the problem.

запуск сети.Служба адаптера прослушивателя Tcp исправила проблему.


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

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

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

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

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

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


Как я прочитал, "модульный тест", очевидно, ожидает сеть WCF.конечная точка tcp на некотором локальном адресе. Итак, для этого вы могли бы либо

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

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