如何获取WCF服务的开放/故障通道数?

时间:2013-08-16 00:01:50

标签: c# .net wcf

我知道我可以使用ServiceThrottlingBehavior来设置我希望服务支持的并发会话数量,但为了得到最好的值,我试图找出实际在不同的地方使用的内容一天中的几个小时。我想公开一个服务方法来返回这个实时数据,或者在最小的情况下,记录它。

在WCF服务中是否有任何方法可以查看当前打开和/或处于故障状态的通道数量?

1 个答案:

答案 0 :(得分:0)

在“打开”您的Web服务之后,您的程序或Windows服务(无论您运行它)应该执行监视连接状态的循环。例如,如果连接出现故障,除非您查询System.ServiceModel.CommunicationState(重复),否则运行Web服务的程序将不知道故障。

  'execution basically stops here to loop through and check the status of host services
  While True
      For ii = 0 To i - 1  'i = count of started web services, -1 for zero index offset
         'check for broken connection case
         If objServiceHost(ii).State <> CommunicationState.Opened Then
            Throw New Exception("SynchronizationWS Service Host failed.") 
            Exit While
         End If
      Next
      Threading.Thread.Sleep(1000) 'sleep 1 second before going trying next
  End While

您可以尝试这样的事情。