检查WCF通信通道状态的正确方法
本文关键字:方法 状态 WCF 通信 通道 检查 | 更新日期: 2023-09-27 18:10:37
我正在开发一个WCF客户端/服务器解决方案,我需要有24/7可用的通信通道,因为有一个持续发布数据的windows服务-我的WF实现是订阅/发布服务。我把一些东西放在一起,但似乎有问题失去连接和其他一些邪恶的问题。正如我在微软网站上看到的关于检查通信对象检查iccommunicationobject的值。State property是竞争条件,不建议用于确定是否重用或关闭通道。然而,我所看到的例子都使用了这种技术!微软做了这样的标记,但没有给出进一步的信息或建议,关于如何"正确"地做到这一点。
所以我想知道什么是正确的方法来做到这一点-那些有经验的人请在我学习WCF时加入并帮助我-我可以使用如何使用的好技巧。
所以我想知道正确的方法是什么
竞态条件就是竞态条件——它们不可能在之前捕捉到,因为它们还没有发生。因此,您期望在调用它之前能够知道通道的状态是不合理的。
然而,我们知道,如果通道没有处于故障(或关闭)状态,我们应该始终能够重用通道。所以我们可以在try中封装对channel的调用…捕获并适当地处理异常。
如果通道不可重用,那么这实际上是一个错误条件,需要在事后处理。在工作流中,您通常可以将其实现为补偿机制,也许可以通过创建另一个通道然后调用它。