Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取WCF服务的打开/故障通道数?_C#_.net_Wcf - Fatal编程技术网

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

C# 如何获取WCF服务的打开/故障通道数?,c#,.net,wcf,C#,.net,Wcf,我知道我可以使用ServiceThrottlingBehavior设置我希望该服务支持多少并发会话,但为了获得最佳值,我正在尝试找出在一天中的不同时间实际使用的会话。我想公开一个服务方法来返回这个实时数据,或者在最简单的情况下,记录它 WCF服务中是否有任何方法可以查看当前打开和/或处于故障状态的频道数量?在“打开”web服务后,您的程序或windows服务(无论您如何运行)应执行循环,以监视连接的状态。例如,如果连接出现故障,运行web服务的程序将不知道该故障,除非您(反复)查询System.

我知道我可以使用
ServiceThrottlingBehavior
设置我希望该服务支持多少并发会话,但为了获得最佳值,我正在尝试找出在一天中的不同时间实际使用的会话。我想公开一个服务方法来返回这个实时数据,或者在最简单的情况下,记录它

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

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

”执行基本上在这里停止,以循环检查主机服务的状态
虽然是真的
对于ii=0到i-1'i=已启动web服务的计数,对于零索引偏移量,-1
'检查接线盒是否断开
如果objServiceHost(ii).State CommunicationState.Opened,则
抛出新异常(“SynchronizationWS服务主机失败”)
退出时
如果结束
下一个
Threading.Thread.Sleep(1000)'在尝试下一步之前先休眠1秒
结束时

您可以尝试类似的方法。

WCF支持维护大量性能计数器。你可能想调查一下。
  '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