私の現在のプロジェクトでは、私たち (つまり「プロジェクト チーム」) は、IIS でホストされている WCF サービスを使用しています。
重要な技術的詳細は次のとおりです。
- WCF サービスには NET 3.5 を使用します。
- NET.TCP通信プロトコルを使用しています
- IIS 7 と IIS 7.5 の両方を使用してこれらのサービスをホストしています
- 各サーバーで複数の IIS ワーカー プロセスを使用します。
したがって、問題は - WCF サービスが利用できなくなることがあります。これらの WCF サービスに到達しようとすると、タイムアウト エラーが発生します。また、WCF サービスの機能を復元する唯一の方法は、NetTcpActivator (Net.Tcp Listener Adapter) Windows サービスを再起動することです。
私の同僚の理論によると、このエラーは次の KB 記事に記載されている問題に関連している可能性があります。
修正: .NET Framework 4 ベースの WCF サービスを実行すると、WCF サービスの Smsvchost.exe が応答を停止するhttp://support.microsoft.com/kb/2536618
この記事によると、SMSvcHost (NetTcpActivator とポート共有サービスをホストするコンテナー サービス) は、リクエストを w3wp (IIS ワーカー プロセス) に 60 秒以上 (構成不可能なタイムアウト) ルーティングできない場合、ハングアップします。残念ながら、このエラーを再現する方法を見つけることができません。たとえば、SMSvcHost を 1 つの CPU コアと 1 つのスレッドに制限し、保留中の接続の制限を 1M に拡張し、ユーザー モードで 100% の CPU 負荷にプッシュしました。そして、それはハングしませんでした!
負荷テストで奇妙なエラーが発生することがありますが、それらを停止すると、すべてのサービスが自動的に通常の状態に回復します。しかし、負荷が大きくない場合、NetTcpActivator がハングすることがあります。
さらに、これは新しい問題ではないと言いたいです。私の同僚は 3 年前に既に入手しています (追加情報については、このスレッドを参照してくださいhttp://forums.iis.net/t/1167668.aspx/1/10 )。残念ながら、彼らは答えを得られませんでした。いくつかの構成変更の後、問題は消えました! そして今、それは新しいサーバーに戻ってきました。
私はあなたのすべての考えやアイデアに本当に感謝しています!