我想使用它的地址找到WCF服务。 我写了以下代码:
var uri = "http://bla-blabla.svc"
var obj = new DiscoveryClient(new UdpDiscoveryEndpoint());
var findCriteria = new FindCriteria();
findCriteria.Duration = TimeSpan.FromSeconds(10);
findCriteria.Scopes.Add(new Uri(uri));
var findResponse = obj.Find(findCriteria);
但它找不到任何东西...... 如果我尝试使用链接使用WCF测试客户端进行搜索,它可以... 我做错了什么?
答案 0 :(得分:0)
使用WCF测试客户端时,您未使用“发现”功能。这是对服务的wsdl / metadata的经典调用。
通过在主机或配置中添加内容,您的目标服务应该是可发现的。
代码
ServiceHost host = new ServiceHost(...);
host.AddServiceEndpoint(new UdpDiscoveryEndpoint());
ServiceDiscoveryBehavior discovery = new ServiceDiscoveryBehavior();
host.Description.Behaviors.Add(discovery);
host.Open();
<强>配置强>
<services>
<service name = "MyService">
<endpoint
kind = "udpDiscoveryEndpoint"
/>
...
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceDiscovery/>
</behavior>
</serviceBehaviors>
</behaviors>
首先,还要删除查找条件中的范围。