1

我有一组使用 System.ServiceModel.Discovery.UdpDiscoveryEndpoint 来实现 ws-discovery 的 WCF 服务。当我向服务器多播发现请求时,它们都以探测匹配正确响应。但是,当我将发现请求单播到服务器时,其中只有一个响应。确定哪个响应有点棘手,但我认为它是第一个被创建的。

我知道我应该使用发现代理来进行单播发现,我们将来可能会实现它,但我对为什么我的服务在这两种情况下的响应不同感到困惑。

4

1 回答 1

1

Ad hoc(多播)正在您的子网中搜索任何正在监听的人,如您所见,但托管(单播)正在向默认发现端点询问可发现的服务。在 ad hoc 模式下,您广播一个发现请求,每个人都响应,就像您描述的那样,但在托管模式下,代理将发现请求发送到一个目标,并且只有该目标响应(通常是发现代理)。

单播意味着只要求代理解析可发现的服务,这样做没有发现代理的好处意味着您已经知道服务端点,因为代理已经与该端点直接通信。

于 2012-03-13T18:52:22.683 回答