2009-07-14 7 views
1

IIS7で登録されたカスタムモジュールを使用してASP.NETアプリケーションを実行しています。IIS7がモジュールのAuthenticateRequest状態でハングアップするWindowsAuthentication

2日後まで、すべて正常に動作していました。これで、要求がAuthenticateRequest状態とWindowsAuthenticationモジュールでハングし始めたことがわかりました。私のカスタムモジュールは、BeginRequest状態でインターセプトし、リクエストを処理し、HttpContext.Current.ApplicationInstance.CompleteRequest()を使用してリクエスト処理を完了します。処理されない要求は、IISが処理するために他のモジュールを介して受け取るためのものです。

問題(リクエストがハングする)は、私のカスタムモジュールが処理しないページで発生します。

私はこの問題のトラブルシューティングを開始する必要があります任意のアイデアですか?今日私はこの問題を3つの異なるマシンで一貫して再現してきました。また、先月のweb.configファイルを変更していないことがわかりました。

この問題のトラブルシューティングに役立つことがあります。事前に

おかげで、 チャールズ・プラカシュDasari

答えて

0

は最後に、私は私の問題への解決策を見つけました。

私が実装したカスタムモジュールは、非同期ハンドラを使用しています。私のモジュールが要求を処理しない場合には

 context.AddOnBeginRequestAsync(
      new BeginEventHandler(BeginBeginRequest), 
      new EndEventHandler(EndBeginRequest) 
     ); 

、開始イベントハンドラは、要求を完了し、それには何の関係もありません。数日前まで、私はBeginメソッドでこれらのリクエストを処理するために別のスレッドに飛び降りていました。最近、モジュールがリクエストを処理しなければならない場合にのみ別のスレッドにジャンプします。今これは問題を引き起こしました。どうやらIISは私が同じスレッドで自分の処理を完了しているのが好きではありません。

だから私はもう一度別のスレッドにジャンプします。 IISは満足していて、私のアプリはもうハングしていません。

私はさらに調査を行い、なぜこのようなことが起きるかを確認する必要があります。つまり、IISや実際にBeginBeginRequestメソッドからIAsyncResultを返すようなバグであるかどうかを確認してください。しかし、今私は別のスレッドでこのリクエストを処理しなければならないことを知っています。

関連する問題