1

時々ハングするWebアプリケーションがあります。理由を調査したいのですが、プロセスがハングしたときに、プロセスのメモリダンプを取得する必要があります。

したがって、私の考えはWebサイトを監視することです。ハングを検出したら、メモリダンプをキャプチャする.batスクリプトを開始し、IISRESETを実行して再起動し、サイトが再び応答を開始するようにします。

私の問題は、adplusが別のプロセス(cdb.exe)を開始し、すぐに戻ることです。IISRESETを実行する前に、cdb.exeが終了するのを待つ必要があります。バッチスクリプトでそれを行う方法はありますか?または、adplusコマンドラインで、メモリダンプが収集されるまで戻らないように指定できますか?

4

2 に答える 2

2

Webアプリケーションのメモリダンプを作成するには、Microsoftデバッグ診断ツールが最適なオプションです。

「IISHang」ルールを作成し、特定のURLを監視し、指定された秒数以内に応答が受信されない場合はいつでもメモリダンプを作成できます。

デバッグ診断ツールは、IIS(またはアプリプール)の再起動に関しては役に立ちませんが、一般に、組み込みのアプリケーションプール再起動オプションで十分です。AppPool([ヘルス]タブ)に[Pingを有効にする]が設定されていることを確認し、他のヘルス/リサイクルパラメータも適切に設定している場合、アプリは何が起こっても応答し続けるはずです。

そうでない場合は、「IISハング」DebugDiagルールからのクラッシュダンプを使用して出力フォルダーを監視し、新しいファイルが表示されるたびにIISを再起動することで確実にうまくいくはずです...

于 2009-12-27T19:55:12.790 に答える
2

質問の2番目の部分に関しては、答えは「はい」です。次の両方を実行できます。(1)コマンドラインでの待機を指定できます(アクセスして変更できる場合)。(2)プロセスがバッチファイルで終了するのを待ちます。

最も単純な形で、

(1)START /WAIT cdb parmsただの代わりに使用するcdb parms

(2)FOR /F "tokens=1,2" %a in ('TASKLIST ^| FIND /I "cdb.exe"') DO @ECHO %a %b必要なコマンドをECHOに置き換えてみてください。

于 2009-12-30T07:46:05.393 に答える