Сделайте службу WSHttpBinding подключаемой извне

Я создал сервис WCF, используя WSHttpBinding:

ServiceHost svh = new ServiceHost(typeof(MyService));
var httpLocation = "http://" + address + ":4041";
svh.AddServiceEndpoint(typeof(IMyService), new WSHttpBinding(SecurityMode.None), httpLocation);
svh.Open();

и я зарегистрировал его в системе с

netsh http add urlacl url=http://+:4041/ user=username

Когда я пытаюсь подключиться к нему с локального хоста, сервис работает.

Но когда я помещаю его на другой компьютер (с address='localhost' или address='ip-of-the-machine'), соединение не устанавливается со следующим исключением:

There was no endpoint listening at http://192.168.44.128:4041/ that could accept 
the message. This is often caused by an incorrect address or SOAP action. See 
InnerException, if present, for more details.

Внутреннее исключение:

A connection attempt failed because the connected party did not properly respond 
after a period of time, or established connection failed because connected host
has failed to respond 192.168.44.128:4041

Я пытался добавить службу в брандмауэр, но это не помогло.

В чем здесь проблема?

ОБНОВИТЬ

Вот соответствующие записи от netstat -ano, Первая - это конечная точка http, которая не может быть подключена извне, вторая - конечная точка net.tcp, которая работает нормально:

TCP    [::]:4041              [::]:0                 LISTENING       4
TCP    192.168.44.128:9939    0.0.0.0:0              LISTENING       2120

1 ответ

В командной строке проверьте "NETSTAT -ano", что ваша служба прослушивает указанный порт. После того, как это проверено, попробуйте PING'ing IP вашего сервисного ящика из клиентского ящика. Если оба варианта успешны, вы, скорее всего, сталкиваетесь с проблемой конфигурации межсетевого экрана и / или сетевого коммутатора.

Другие вопросы по тегам