WCF Discovery просто не работает

Я пытаюсь добавить специальное обнаружение к простой настройке клиента службы WCF (в настоящее время реализовано путем самостоятельного хостинга в консольном приложении). Отладка с использованием VS2010 в Windows 7 и выполнение всего, что я могу найти в онлайн-руководстве, но тем не менее - клиент обнаружения просто ничего не находит. Излишне говорить, что если я открою клиент для правильной конечной точки службы, я смогу получить доступ к службе от клиента.

код службы:

using (var selfHost = new ServiceHost(typeof(Renderer)))
{
    try
    {
        selfHost.Open();
        ...
        selfHost.Close();

service app.config:

<?xml version="1.0"?>
<configuration>
  <system.serviceModel>
    <services>
      <service name="TestApp.Renderer">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:9000" />
          </baseAddresses>
        </host>
        <endpoint address="ws" binding="wsHttpBinding" contract="TestApp.IRenderer"/>
        <endpoint kind="udpDiscoveryEndpoint"/>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceDiscovery/>
          <serviceMetadata httpGetEnabled="True"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

код обнаружения клиента:

DiscoveryClient discoveryClient = new DiscoveryClient(new UdpDiscoveryEndpoint());
var criteria = new FindCriteria(typeof(IRenderer)) { Duration = TimeSpan.FromSeconds(5) };
var endpoints = discoveryClient.Find(criteria).Endpoints;

'конечные точки' коллекция всегда выходит пустой. Я пробовал запустить службу и клиент из отладчика, из командной строки, из командной строки администратора - все, но безрезультатно (все на локальном компьютере, конечно, не говоря уже о том, что мне нужно, чтобы он работал на вся моя подсеть в конечном итоге)

Любая помощь будет оценена: -)

16
задан kbo 21 July 2011 в 14:59
поделиться