net.tcp служба wcf (размещенная служба Windows) на сервере домена и клиент вне домена

У меня есть служба wcf (с привязкой net.tcp), размещенная в службе Windows, и клиент wpf. когда я запускаю службу на сервере за пределами домена компании, она работает отлично, проблема в том, что я размещаю службу на сервере внутри домена компании и пытаюсь запустить приложение wpf на клиенте за пределами домена компании. Я получаю ту же ошибку: «Соединение с сокетом было прервано ...». Я пытаюсь установить режим безопасности «Нет», «Транспорт» и получить тот же результат. У меня вопрос, как правильно это сделать? Я имею в виду разместить службу TCP wcf net на сервере домена и вызывать ее от клиента вне домена?

Большое спасибо!


person Guaronet    schedule 09.11.2018    source источник
comment
Вы уверены, что ваш корпоративный брандмауэр позволяет произвольным клиентам напрямую обращаться к вашей сети?   -  person nvoigt    schedule 09.11.2018
comment
Да, другая сеть - это технологическая сеть. Сервер имеет доступ как к корпоративной сети, так и к технологической сети.   -  person Guaronet    schedule 09.11.2018


Ответы (2)


Я меняю привязку с net.tcp на wshttp и служба работает нормально! Сервер с корпоративным доменом и клиент без корпоративного домена Дело в том, что мне нужно, чтобы это работало с net.tcp

person Guaronet    schedule 09.11.2018
comment
Разные сценарии приложений имеют разную стратегию безопасности, аутентификации, авторизации. Мы используем Nettcpbinding в сценарии приложения интрасети. Учитывая небезопасность Интернета. Мы используем привязку Wshttp с режимом шифрования и аутентификации. codeproject.com/articles/431291/ - person Abraham Qian; 12.11.2018

Ни домен Windows, ни DNS не имеют ничего общего с WCF / TCP, если вы явно не указали это.

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

Правильный способ - убедиться, что клиент и сервер могут общаться друг с другом. Если это разные сети, вам понадобится NAT, а если это корпоративная сеть, я буду очень удивлен, что не обнаружил брандмауэра, который нужно настроить.

В качестве первого шага попробуйте выполнить эхо-запрос целевой машины с клиентской машины.

person nvoigt    schedule 09.11.2018
comment
Связь между машинами работает нормально, на сервере 2 сети, корпоративная с межсетевым экраном компании и локальная технологическая сеть. локальная технологическая сеть - это внутренняя сеть без брандмауэра - person Guaronet; 09.11.2018
comment
Я думаю, вам нужно будет опубликовать настройки сети и вашу точную конфигурацию. - person nvoigt; 09.11.2018