IIS中Web應用程序和WebServices自動調用Application_End函數

在IIS6.0下,配置一個Web 應用程序,或是Web 服務的時候,如果不指定特定的應用程序池,則使用默認的應用程序池:DefaultAppPool,而默認情況下,DefaultAppPool設置成爲20分鐘沒有響應則執行釋放應用程序實例,執行Gloabl.axax中Application_End中的操作,當下一個請求到來的時候,再執行Application_Start的操作,如果用戶希望能一直保持應用程序實例的話,則需要在選擇相應的應用程序池進行設置,取消這個限制。最近在項目中使用WebServices來實現任務調度的接口,爲了實現任務任務的定時調度,我們在Application_Start中定義了一個Quartz.NET的一個調度對象,並對他進行初始化,沒調用一個相應的web服務函數,就添加一個對應的job到該框架中,等待調度。我們在Application_End函數中對該調度對象進行了資源銷燬工作。在測試過程中,我們發現,當停止調用Web服務後20-30分鐘後系統自動調用Application_End函數,所以造成很多對應的job都不能正常調度,經過baidu,google終於找到原來就是上面介紹的問題,重新設置ApplicaitonPool和修改它的屬性,設置成永遠都不過期,問題解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章