1

I have a set of WCF services that use System.ServiceModel.Discovery.UdpDiscoveryEndpoint to implement ws-discovery. When I multicast a discovery request to the server, all of them respond correctly with probe matches. However, when I unicast my discovery request to the server, only one of them responds . It's a bit tricky to pin down which is responding, but I think it's the first to be created.

I'm aware that I should use a discovery proxy for unicast discovery, and we'll probably implement that in future, but I'm puzzled as to why my services are responding differently in the two cases.

Foob
  • 11
  • 2

1 Answers1

1

Ad hoc (multicast) is searching your subnet for anyone listening as you have seen, but managed (unicast) is asking the default discovery endpoint for discoverable services. In ad hoc mode you broadcast a discovery request and everyone responds, like you describe, but in managed mode the proxy sends the discovery request to one destination and only that destination responds (usually the discovery proxy).

Unicast is meant to only ask the proxy to resolve discoverable services, doing it without the benefit of a discovery proxy means you already know the service endpoint since the proxy is already communicating directly with that endpoint.

PTiddy
  • 126
  • 3
  • So identical discovery probes will produce different responses, depending on whether they arrive as unicast or multicast packets. That seems pretty bonkers. – Foob Mar 14 '12 at 10:08