检查WCF连接

时间:2010-01-03 16:49:31

标签: .net wcf

我有一个WCF服务和客户端。我通过

连接到WCF
  

ChannelFactoryBase≤(中   ≤(TChannel>)&GT).. :: CreateChannel。   方法

然后我引用了ICommunicationObject

WCF服务在连接或稍后关闭时可能无法正常工作。什么是正确的 检查WCF服务是否正常工作的方法。一种直接的方法是使用CommunicationException机制。但是ICommunicationObject.State属性呢?我应该检查一下 在任何WCF方法调用之前处于故障状态?什么是最佳做法?

1 个答案:

答案 0 :(得分:14)

没有神奇的方法可以检查WCF服务是否正常工作 - 除了调用它并准备处理因不工作而产生的异常。

ICommunicationObject.State只会告诉您客户端和服务器之间的通道是“故障”,如果先前的操作导致错误并且该错误未在服务器上正确处理(因此通道是“故障”,例如变得毫无用处。)

你可以 - 如果你控制电线的两端 - 包括一个“虚拟”ping方法(或者像返回服务的版本号之类的东西),以便能够先调用类似的东西,所以只需查看通信频道还活着。

但接下来:首先调用MyService.Ping()并且如果服务不活动则必须处理可能的异常,然后调用实际方法,而不是仅调用MyService.MyMethod()并处理任何相关的例外?