Не удалось подключиться к сети.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 запущена. Ты не админ сервера, можете взглянуть на эти ценности для вас?
Is 127.0.0.1:808
фактический IP: порт, указанный в ошибке? Если да, то вам нужно исправить IP (127.0.0.1
синоним localhost
, так что это будет ваш локальный компьютер).
В противном случае это выглядит как проблема брандмауэра.
существует два общих источника брандмауэра:
- маршрутизатор
- OS
брандмауэры маршрутизатора обычно находятся на маршрутизаторе, который соединяет внутреннюю сеть с интернет. В этих случаях вам (или кому-то с доступом) нужно будет войти в маршрутизатор и перенаправить порт на IP для машины. Это требуется только в том случае, если два компьютера, которые пытаются общаться, не находятся в одной внутренней сети.
Например, если ваш компьютер подключается через интернет к серверу, требуется настройка переадресации портов. Если оба компьютера находятся в одной сети в одном офисе, переадресация портов не требуется (случаи, когда это это не правда, распространены в крупных компаниях,но тогда есть ИТ или сетевой человек для решения проблем порта).
предполагая, что ваш сервер работает под управлением Windows, вам понадобится кто-то с админ(?) войдите в систему и откройте порт или разрешите службе принимать входящие запросы. Поскольку вы указали, что у вас нет доступа к серверу, я бы предложил, чтобы ответственные за сервер проверили конфигурацию.
Как я прочитал, "модульный тест", очевидно, ожидает сеть WCF.конечная точка tcp на некотором локальном адресе. Итак, для этого вы могли бы либо
- добавьте необходимую службу на сервере сборки, который может быть общим сервером или принадлежать другой команде, или какой-либо другой проблеме, к которой я не причастен, или
- измените модульный тест, чтобы он не ожидал реальной живой службы WCF, а издевался или подделывался.
Я (очевидно) рекомендую второй альтернатива.