我正在使用.NET 4.0中的ws-discovery,它工作得很好。我有一个问题是如何处理不起作用的服务。例如,假设我在服务器A和服务器B上有IService,假设服务器A上的此服务中断(通过停止应用程序池来模拟此情况)。您的客户端仍然会找到两个服务,因此当您尝试使用该服务时,您不能保证它是正在工作的服务。
所以我的问题是,您是否通过遍历端点来处理此问题,如果第一个端点失败,请尝试下一个端点。或者,有没有一种方法可以只检索在搜索时“运行”的服务?或者我在什么地方漏掉了要点--很有可能:-)
谢谢
发布于 2011-08-19 02:53:29
我发现这是wcf发现中的一个常见问题。当一台服务器位于两个网络上时,也会出现类似的问题。发现将返回两个nic地址,但当然,客户端只能通过其中一个网络到达服务器。
我一直使用的变通方法是向服务器添加一个"void Ping()“函数。然后,在发现之后,客户端尝试在所有发现的端点上调用此"Ping()“函数。返回响应的是好的,其他的是坏的。
最后,我更进一步,创建了一个线程,该线程偶尔会继续调用这个"Ping()“函数。然后,当一个好的服务器消失时,该线程从一个“好的”uri集合中删除该uri。
我能感受到你的痛苦。
发布于 2009-12-02 02:36:52
通过在运行时确定端点地址,本文似乎涵盖了您正在讨论的内容。
http://weblogs.asp.net/gsusx/archive/2009/02/13/using-ws-discovery-in-wcf-4-0.aspx
https://stackoverflow.com/questions/1827896
复制相似问题