为什么没有重新启动服务就无法访问UdpDiscoveryEndpoint?

时间:2016-06-08 07:19:10

标签: c# wcf

我正在开发WCF服务并使用UdpDiscoveryEndpoint自动连接服务。当新服务启动时,它是可发现的,但随后被卡住并且无法从客户端发现。以下是我如何托管UdpDiscoveryEndpoint的一些代码。

 ServiceHost hostQmsService = new ServiceHost(typeof(MyService));
 hostQmsService.Description.Behaviors.Add(new ServiceDiscoveryBehavior());
 hostQmsService.AddServiceEndpoint(new UdpDiscoveryEndpoint() { });
 hostQmsService.Open();

这就是我搜索我的服务的方式:

 DiscoveryClient discoveryClient = new DiscoveryClient(new UdpDiscoveryEndpoint());
 FindCriteria findCriteria = new FindCriteria(typeof(MyService))
 {
     MaxResults = 1,
     Duration = new TimeSpan(0, 0, 0, 5)
 };
 FindResponse findResponse = discoveryClient.Find(findCriteria);
 _endpointAddresses = findResponse.Endpoints;
 _endpointAddress = findResponse.Endpoints.Count > 0 ? findResponse.Endpoints[0].Address : null;

它在新服务启动时起作用,但在工作几个小时后,服务无法被发现。

0 个答案:

没有答案