約 100 のクライアントで実行されている NetTcpBinding を備えた WCF サービスがあります。クライアントは定期的にサーバーから情報をポーリングし、しばらくするとサービスが応答しなくなります。
netstat を見ると、多くの接続が CLOSE_WAIT 状態になっていることがわかります。
これは私のバインディングです:
<netTcpBinding>
<binding name="default" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647" maxConnections="10000">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binding>
</netTcpBinding>
また、 closeTimeoutの値をデフォルトの 00:01:00 から00:00:10に変更しようとしましたが、効果はありませんでした。
マシンは Windows Server 2008 R2 64 ビットです。
アップデート:
今追加しましたServiceThrottlingBehavior
が、結果は同じです。
new ServiceThrottlingBehavior
{
MaxConcurrentCalls = 1000,
MaxConcurrentInstances = 1000,
MaxConcurrentSessions = 1000
};
Update2
SessionMode を NotAllowed に設定し、バインディングをストリーミングに変更しました。
パフォーマンスを改善したり、問題を解決したりするために私ができることはありますか?