/ / Не вдалося підключитися до net.tcp: спроба підключення тривала протягом часу - c #, wcf

Не вдається з'єднатися з net.tcp: спроба підключення тривала протягом часу - c #, wcf

На віддаленій машині збирання, я отримую наступну помилку, коли я запускаю свій тестовий блок.

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

Я маю дуже обмежений доступ до цієї машини. Я не маю доступу до iis на машині збірки або служб, як я роблю на своїй локальній машині. Блок-тести працюють на моїй локальній машині, але вони входять до помилки, згаданої вище на машині збирання.

Що я можу зробити, щоб налагодити цю помилку? Я прочитав такі речі, як перевірити вогонь стіни і т.д. Але я не знаю, як це зробити? Я не можу перевірити, чи працює служба Windows для цієї служби на машині збирання. Я спробував увійти в машину збирання або підключити мій IIS до цього віддаленого комп'ютера, але я не міг.

Відповіді:

8 для відповіді № 1

Найпоширенішою проблемою для мене є адаптер Служби Windows Net.Tcp, який не працює на хостингу.

Також перевірте ваш веб-додаток IIS, щоб увімкнути включені протоколи net.tcp. Наприклад, у мене є "http, net.tcp" і в моїх прив'язках у мене є "http:: 94:, net.tcp: 194:"

Я не знаю жодного хорошого способу віддаленої перевірки того, чи IIS налаштований правильно або служба Windows працює.


7 для відповіді № 2

Початок служби Net.Tcp Adapter Adapter усунув проблему.

Початок служби Net.Tcp Adapter Adapter усунув проблему.


2 для відповіді № 3

Є 127.0.0.1:808 фактичний IP: Порт повідомляється в помилку? Якщо так, то вам потрібно виправити IP (127.0.0.1 є синонімом localhost, так що це буде ваш локальний комп'ютер).

Інакше це виглядає як брандмауер.

Існує два поширених джерела брандмауера:

  • Маршрутизатор
  • ОС

Брандмауери маршрутизатора зазвичай знаходяться на маршрутизаторіяка з'єднує внутрішню мережу з Інтернетом. У цих випадках вам (або комусь з доступом) потрібно буде увійти в маршрутизатор і переслати порт на IP для машини. Це потрібно тільки, якщо два комп'ютери, які намагаються з'єднатися, не знаходяться в одній внутрішній мережі.
Наприклад, якщо комп'ютер підключаєтьсячерез Інтернет на сервер, тоді потрібно налаштувати перенаправлення портів. Якщо обидва комп'ютери знаходяться в одній мережі в одному офісі, то переадресація порту не потрібна (випадки, коли це не відповідає дійсності у великих компаніях, але є ІТ або мережева особа, яка займається проблемами порту).

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


1 для відповіді № 4

Як я прочитав, "одиничний тест" очевидно очікує кінцеву точку net.tcp WCF на деякій локальній адресі. Отже, для того, щоб працювати ви могли

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

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