我有一组使用System.ServiceModel.Discovery.UdpDiscoveryEndpoint实现ws-discovery的WCF服务。当我向服务器多播一个发现请求时,所有这些请求都正确地响应探测匹配。但是,当我将我的发现请求单播到服务器时,只有一个服务器响应。确定哪一个是响应有点棘手,但我认为它是第一个创建的。
我知道我应该使用发现代理进行单播发现,我们可能会在将来实现它,但我不明白为什么我的服务在这两种情况下会有不同的响应。
发布于 2012-03-14 02:52:23
正如您所看到的,Ad hoc (多播)正在您的子网中搜索侦听的任何人,但托管(单播)正在向默认发现端点请求可发现的服务。在ad hoc模式下,您广播一个发现请求,每个人都会响应,正如您所描述的,但是在托管模式下,代理将发现请求发送到一个目的地,并且只有该目的地(通常是发现代理)做出响应。
单播意味着只要求代理解析可发现的服务,这样做而不利用发现代理意味着您已经知道服务端点,因为代理已经直接与该端点通信。
https://stackoverflow.com/questions/9689527
复制相似问题