IIS7 應用程序池自動回收關閉的解決方案


在ASP.NET Application中加入某個定時任務,那想必一定是用一個線程在不停地做定時計算

在自己的ASP.NET應用程序中加入了Quartz.NET框架

 

夜間或者網站在經過無訪問階段后,后台調度的線程和計算任務都停止了,如果你抓取了Application_End事件,會發現這個事件居然被調用了。


那一定是IIS的應用程序池回收的機制在作怪了。因為IIS的默認設置里面,如果一個站點所處的應用程序池超過一段時間沒有被訪問或者請求,IIS就會自動回收這個程序池,並且把進程殺掉。那Quartz的定時任務也自動停止了。


但是我們可以通過設置應用程序池參數使其不會被簡單的自動回收(有些情況無法避免,比如熱部署的站點,錯誤數量超限等等)


在IIS中找到這個站點所用的程序池,點擊“高級設置...”

在打開的列表中更改以下設置:

回收——固定時間間隔(分鍾) 改為 0

        ——虛擬/專用內存限制(KB) 改為 0

進程模型——閑置超時(分鍾) 改為 0


這樣子,一般情況下程序池就不會被自動回收了,后台Quartz 的定時任務就會正常工作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM