web-dev-qa-db-ja.com

IISで単一の要求を強制終了する方法は?

私はIISPeekを使用しており、バグのあるページでハングしているリクエストが1つあることがわかります。ページを開いた他の人が問題を経験しないようにバグを修正しましたが、ページはほぼ1時間後もアクティブです。

現在実行中の重要なプロセスがいくつかあるため、アプリケーション全体を停止するのではなく、.

IISPeekを介して、リクエスト番号(9f0002008001238e)とclientIPを取得しています。それらのいずれかを使用して、進行中のリクエストを停止できますか?

4
Petter Brodin

Process Explorer を使用してこれを行うことができます。問題のあるw3wp.exeプロセスのPropertiesに移動し、Threadsタブを選択してから、長時間実行されているスレッドを選択し、Killボタンを使用してスレッドを強制終了します。また、Stackボタンを使用してスレッドのスタックトレースを取得することもできます。これにより、コードのどこでハングしているのかを判別できます。

5
deadlydog

ハングしている個々のリクエストを停止することはできません。そのためには、アプリケーションプールをリサイクルする必要があります。

または、デバッガーで割り込み、要求スレッドを終了します。スレッドがハングしている場合、自発的に終了する方法はありません。

デバッガがブレークインすると、プロセス全体が一時停止することに注意してください。終了する前に.detachを行わないと、プロセスは終了します。これは機能的にはリサイクルに似ています。

余分なステップ:それを行っても何も壊れないことを願います.

2
TristanK