8

私の現在のプロジェクトでは、私たち (つまり「プロジェクト チーム」) は、IIS でホストされている WCF サービスを使用しています。

重要な技術的詳細は次のとおりです。

  1. WCF サービスには NET 3.5 を使用します。
  2. NET.TCP通信プロトコルを使用しています
  3. IIS 7 と IIS 7.5 の両方を使用してこれらのサービスをホストしています
  4. 各サーバーで複数の 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 )。残念ながら、彼らは答えを得られませんでした。いくつかの構成変更の後、問題は消えました! そして今、それは新しいサーバーに戻ってきました。

私はあなたのすべての考えやアイデアに本当に感謝しています!

4

1 に答える 1