ASP.NET Web アプリケーションにパフォーマンスの問題があり、どこを調査すればよいかわかりません。Web アプリケーションで WCF クライアントを有効にすると、Web パフォーマンスが低下し、着信 Web 要求がキューに入れられ始めます。
状況:
通知チャネルとしての ASP.NET アプリケーション (IHttpAsyncHandler): ハンドラーは、クライアント接続を約 20 秒間開いたままにします (ダイレクト プッシュ メッセージの場合)。20 秒後、HTTP 要求が完了して閉じられ、クライアントは数秒後に再接続します。-->これはすべて、約 500 の同時クライアントでうまく動作します。1 秒間に約 20 ~ 50 回の (再) 接続があります。
ロギングを行うために、Web アプリケーションにトレース リスナーがあり、TCP.NET バインディングを使用してログ メッセージを WCF サービスに送信します。IHttpAsyncHandler の各接続/切断は、トレース リスナーに送信されます。
問題:
トレースリスナーがなければ、すべてうまくいきます。トレース リスナーを有効にすると、Web アプリケーションのパフォーマンスが大幅に低下します。Web 要求がキューに入れられ始めます。数秒後、リクエスト キューは数百のエントリに増加します。Web が Web 接続を拒否し始めます。
Trace Listener/WCF Client を有効にすると、パフォーマンスに大きな影響が生じるのはなぜでしょうか。これがサーバー/WCF スロットリングの問題なのか、それともパフォーマンスの制限に関係しているのかはわかりません。これはある種の接続プール制限の問題でしょうか? この問題の原因を特定するのに役立つパフォーマンス カウンターはどれですか?
アイデアをいただければ幸いです。
サーバー A (HTTP ハンドラー): Windows 2003 R2 SP2、IIS 6
サーバー B (WCF ホスト): Windows 2008 R2 SP1、IIS 7、WAS ホスティング
編集: WCF roxy が作成され、TraceListener で受信したすべてのメッセージに対して閉じられます。
WCF クライアントとサーバーの両方のバインディングには、maxConnetions=300 が構成されています。