WCF DiscoveryClient возвращает ссылки на локальный хост с удаленных машин - PullRequest
2 голосов
/ 09 сентября 2010

У меня есть приложение с собственным сервисом WCF.

Моя служба WCF публикуется под URI "net.tcp: // localhost: 8004 / DocumentService". Когда я запускаю службу на удаленном компьютере и пытаюсь обнаружить службу с помощью нового класса .NET 4 DiscoveryClient, все найденные службы также имеют URI «net.tcp: // localhost: 8004 / DocumentService» без какой-либо информации фактическая машина, на которой размещен сервис.

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

Есть ли способ получить информацию об удаленном компьютере или мне нужно опубликовать свой сервис с именем компьютера на удаленном компьютере? Или DiscoveryClient просто сломан?

Надеюсь, это имеет смысл.

1 Ответ

4 голосов
/ 20 декабря 2010

Я потратил много времени на изучение этой проблемы.Построение базовых адресов в коде было для меня неприемлемым, поскольку подразумевает жесткую схему транспортной схемы и порта (последний, конечно, может храниться в отдельном разделе конфигурации, но почему бы не использовать существующий раздел?)Я хотел иметь возможность просто настроить базовый адрес в конфигурации, как обычно.И получается, что базовый адрес типа <add baseAddress="net.tcp://*:8731/"/> будет отлично работать.Я думаю, что то же самое верно для программной конфигурации.

...