WCF失败导致高线程数

时间:2014-05-28 19:43:09

标签: c# .net wcf

我目前正通过WCF向2个端点发送信息。在一个场合,一个端点被停止以进行维护。在此期间,我看到我的发送应用程序线程数增加。当端点重新启动时(数小时或数天后),它将收到大量调用,并且发送应用程序上的线程计数将恢复正常。我正在使用以下netTCPBinding,但我没有看到发送应用程序如何缓冲这些请求(从而增加其线程数)。在将信息发送到2个端点时,我确实使用Parallel.ForEach。

<netTcpBinding>
    <binding name="HANetTcp" receiveTimeout="00:01:00" sendTimeout="00:00:05"> 
      <security mode="None"/> 
    </binding>
  </netTcpBinding>

1 个答案:

答案 0 :(得分:1)

根本原因是TimerCallback与MethodImplOptions.Synchronized一起使用,它以某种方式保存线程引用(并不总是足以耗尽线程池) -