我們正在使用IIS中託管的遠程應用程序跟蹤連接泄漏,以清除在一天中的特定時間安排AppPool回收的孤立連接。 但是我沒有看到證據表明這個回收是按照計劃發生的 - 我已經更改了元數據庫屬性,因此IIS將記錄所有回收,並記錄手動回收命令。IIS應用程序池回收似乎未遵守指定的日程安排
什麼可能會阻止IIS觀察計劃?
我們正在使用IIS中託管的遠程應用程序跟蹤連接泄漏,以清除在一天中的特定時間安排AppPool回收的孤立連接。 但是我沒有看到證據表明這個回收是按照計劃發生的 - 我已經更改了元數據庫屬性,因此IIS將記錄所有回收,並記錄手動回收命令。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不是您的默認WSH腳本宿主,則可能需要使用:cscript iisapp.vbs
。
當一個應用程序池回收,你也應該看到以下事件在您的系統事件日誌:
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會話將由舊的工作進程提供服務,直到沒有更多的時間)。
要查看所有在事件日誌中的應用程序池的事件,請按照下列指示...
你怎麼知道應用程序池沒有被回收?進程ID是否保持不變? – Kev 2009-06-23 15:49:27