4

IIS6でホストされているASMXWebサービスがあり、いずれかで奇妙な動作が見られますWebMethod。後、iisreset特定のメソッドへの最初の呼び出しはクライアントに戻ることができず、60秒後にタイムアウトになります。

ファイルへのログインApplication_BeginRequestとログインを紹介しましApplication_EndRequestた。Global.asax.csロギングは、その1回の呼び出しで、EndRequestが呼び出されないことを示しています。メソッド自体のtry-finallyブロックは、メソッドが最後まで実行されていることを示しています。

この方法の前、最中、後のさまざまな方法に対して、問題がない他の要求があります。TcpTraceは、メソッドへの最初の要求に対して応答が返されないことを示しています。

ログには、finallyブロックが完了した後、要求を処理したスレッドが他の要求の処理を開始することも示されています。

何がそのような振る舞いを引き起こすのか、そしてこれをさらにデバッグする方法を考えています。

4

2 に答える 2

1

これが完全に再現可能であると仮定すると、メソッドを変更することから始めます。つまり、期待どおりに機能するまで、ものを削除します。

Web メソッド自体が原因で、奇妙な二次的な動作が発生しているようです。2 つの数値を加算して結果を返すよりも少し複雑だと思います。

また、メソッドが何をしているかにも細心の注意を払います。たとえば、アンマネージド リソースをインスタンス化していますか? このメソッドの最初の実行時に失敗する可能性のある http ハンドラーまたはモジュールが含まれていますか?

機能するまでコードを削除することで、何が原因であるかを正確に把握できます。

于 2011-01-18T16:39:47.723 に答える
0

いくつかの推奨事項: ログを Application_AuthenticateRequest Application_Error の下に置き、エラーが発生するかどうかを確認します。

これで問題が解決しない場合は、アプリケーション ドメインと IIS のイベント ログを確認してください。

于 2011-01-18T16:33:27.007 に答える