Я пытаюсь использовать механизм обнаружения WCF в .NET 4.0. Он работает в Windows 7, но не работает на компьютере с XP из-за исключения сокета, говорящего, что «запрошенный адрес недействителен в его контексте» (конечная точка — soap.udp://239.255.255.250:3702).
Является ли Windows 7 против XP отвлекающим маневром? netstat, похоже, не показывает никаких конфликтов. Что мне здесь не хватает?
Я создал упрощенную тестовую службу, которая показывает проблему, используя следующую конфигурацию:
<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata/>
<serviceDiscovery />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior>
<endpointDiscovery />
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="HelloWorldService">
<host>
<baseAddresses>
<add baseAddress="http://localhost/Demo"/>
</baseAddresses>
</host>
<endpoint kind="mexEndpoint" />
<endpoint kind="udpDiscoveryEndpoint" />
<endpoint contract="Test.IHelloWorld"
address="/Hello"
binding="basicHttpBinding" />
</service>
</services>
</system.serviceModel>
</configuration>