0

C#で記述されたWebサービスがあります。プールのリサイクル中は、かなり奇妙な動作をします。

5つのワーカープロセスでプールを構成すると、たとえば100のリクエストの後にリサイクルする必要があります(本番環境では実際には10000ですが、気にしないでください)。プロセスごとに最初の100(つまり、500リクエスト)に対して適切な応答を取得しますが、その後、一部のリクエストは不適切な結果を返します(タイムアウトも発生しますが、プロセスがリサイクルされているため、問題ありません)。

これらの不適切な結果はリサイクル後に発生するように見えるため、サービスの起動中にデバッガーを接続して何が発生するかを確認するのは少し難しいです(リサイクルが発生するとデバッガーが切り離されるため)。

だから私の質問は次のとおりです:
1。誰かがこの種のものをデバッグするための良い方法を知っていますか

編集:2。たまたま何が間違っているのかを知っている人(サービスにはリクエスト間の状態情報がありません)-デバッガーを接続し、幸運にも例外を確認することでエラーを見つけました(グローバル例外ハンドラーでキャッチされました-神私はそれらが嫌いです):しかし、1つの質問はまだ残っています。デバッガーを接続するよりも簡単な方法はありますか。エラーが表示されるのに間に合うようにしてください。

4

2 に答える 2

0

私が(今のところ)やったことは、これらの「セミグローバル」なtry / catch / do-nothingハンドラーのほとんどを削除してから、「Unhandled Exceptions」を処理するためのSoapExtensionを記述し、可能なすべての情報をダンプすることです。近づいてください。

私はCodeProjectに関するJeffAtwoodの記事から最もインスピレーションを得ました:http://www.codeproject.com/kb/aspnet/ASPNETExceptionHandling.aspx

デバッガーをアタッチすることと実際には同じではありませんが、今のところ行う必要があります。

于 2010-09-23T06:24:21.083 に答える
0

不適切な結果が何であるかを明確にする必要があります。.NETエラーでない場合は、コードを確認し、独自のコードにアプリケーションレベルのログを追加する必要があります。

デバッガーは、他に頼ることができない場合にのみ役立ちます。

于 2010-09-22T08:52:34.730 に答える