IISでホストされているリモート処理を使用するアプリケーションで接続リークを追跡しているため、孤立した接続をクリアするために、1日の指定された時間にAppPoolのリサイクルをスケジュールしました。ただし、このリサイクルがスケジュールに従って行われているという証拠は表示されません。メタベースプロパティを変更したため、IISはすべてのリサイクルをログに記録し、手動のリサイクルコマンドをログに記録します。
IISがスケジュールを監視するのを妨げているのは何ですか?
IISでホストされているリモート処理を使用するアプリケーションで接続リークを追跡しているため、孤立した接続をクリアするために、1日の指定された時間にAppPoolのリサイクルをスケジュールしました。ただし、このリサイクルがスケジュールに従って行われているという証拠は表示されません。メタベースプロパティを変更したため、IISはすべてのリサイクルをログに記録し、手動のリサイクルコマンドをログに記録します。
IISがスケジュールを監視するのを妨げているのは何ですか?
アプリケーションプールのリサイクルを(スケジュールに基づいて)実行すると、新しいワーカープロセス(w3wp.exe
)が開始されます。既存のワーカープロセスは、既存の要求を処理するために存続し、それ以上なくなるとシャットダウンします。すべての新しいリクエストは、新しいワーカープロセスに送信されます。
w3wp.exe
リサイクルしているアプリケーションプールが新しいプロセスであるかどうかを確認できます。これを行うには、次のIIS管理スクリプトを使用します。
c:>iisapp.vbs
W3WP.exe PID: 5924 AppPoolId: MSSharePointAppPool
W3WP.exe PID: 2840 AppPoolId: Problem Sites - ASP.NET 2.0
W3WP.exe PID: 2576 AppPoolId: DefaultAppPool
W3WP.exe PID: 6076 AppPoolId: ASP.NET 2.0
W3WP.exe PID: 4916 AppPoolId: Problem Sites - ASP.NET 1.1
スケジュールされたリサイクル時間の前後のプロセスIDをメモして、変更されるかどうかを確認します。
cscript iisapp.vbs
cscriptがデフォルトのWSHスクリプトホストでない場合は、次を使用する必要があります。
アプリケーションプールがリサイクルされると、システムイベントログに次のイベントも表示されます。
Event Type: Warning
Event Source: W3SVC
Event Category: None
Event ID: 1013
Date: 22/06/2009
Time: 19:18:09
User: N/A
Computer: UK1SRD1602
Description:
A process serving application pool 'ASP.NET 2.0' exceeded time limits during
shut down. The process id was '2788'.
このイベントは、([アプリケーションプールのプロパティ]-> [パフォーマンス]タブ)で指定された分数にIdle timout
加えて、既存のワーカープロセスが保留中の要求を完了し、最後のASP.NETアプリケーションドメインが破棄されるまでにかかる時間の後に表示されます(既存のASP.NETセッションは、なくなるまで古いワーカープロセスによって処理されます)。