我有一个 WCF 服务和客户端。我通过连接到 WCF
ChannelFactoryBase<(Of <(TChannel>)>)..::.CreateChannel Method
然后我引用了 ICommunicationObject
WCF 服务在连接或稍后关闭时可能无法正常工作。什么是正确的
检查 WCF 服务是否正常工作的方法。一种直接的方法是使用 CommunicationException 机制。但是 ICommunicationObject.State 属性呢?我应该检查它是否是
在任何 WCF 方法调用之前处于故障状态?什么是最佳做法?
最佳答案
没有什么神奇的方法可以检查 WCF 服务是否正常工作 - 除了调用它并准备处理如果它不工作时出现的异常。ICommunicationObject.State
只会告诉您客户端和服务器之间的 channel “故障”,如果先前的操作导致错误并且服务器上没有正确处理该错误(因此 channel “故障”,例如变得无用)。
你可以 - 如果你控制电线的两端 - 包括一个“虚拟”ping方法(或返回服务的版本号之类的东西)以便能够首先调用类似的东西,所以看看通信 channel 是否仍然活。
但是:第一次调用 MyService.Ping()
的真正好处是什么?如果服务不存在,则必须处理可能的异常,然后调用您的实际方法,而不仅仅是调用 MyService.MyMethod()
并处理任何相关异常?
关于.net - 检查 WCF 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1995520/