2013-07-05 73 views
0

我們正在處理應用程序重新啓動的問題(每隔幾個小時)。這會導致第一位訪問者每隔幾個小時就會有一段很長的加載時間。此外,我們有一個單獨的服務器來處理排隊的消息,它可能會停機一天,而我們不知道,因爲應用程序將無緣無故退出。在應用程序退出之前調用什麼方法?

是否有任何事件或方法,我們可以掛鉤到應用程序退出時的日誌,爲什麼它退出,並可能指示它重新啓動?

+0

它已經重新啓動(否則你不會得到緩慢的第一頁)。 –

+0

你看過應用程序池超時(從IIS)嗎?默認情況下是20分鐘。 – highwingers

+0

@HenkHolterman - 確實,網站正在重新啓動,但我們的隊列服務器(也是一個mvc應用程序)不會重新啓動,因爲它不應該被訪問。我也希望它立即重新啓動,以便用戶不會得到緩慢的第一頁。 –

回答

2

IIS將關閉任何空閒一段時間的應用程序池。當IIS檢測到某些類型的錯誤時,它也會回收應用程序池等等。

您當然可以掛鉤Application_End()事件,但不能保證在所有情況下都會調用它。例如,如果應用程序被強制終止,它將不會被調用。

在更新版本的IIS中,您可以配置IIS以保持您的應用「溫暖」。您也可以創建一個計劃的作業,每隔一段時間觸摸一次您的主頁。

+0

我們的應用程序設置爲默認回收(固定間隔,每1740分鐘)。是否有另一個過程關閉它? –

+0

我發現'Idle Time-out(minutes)'設置。它的默認設置爲20分鐘。我會監控這個週末,看看它是否真的關閉我的隊列應用程序的線程,但對於網站來說,它應該沒問題。謝謝您的幫助! –

0

我相信你要找的是application_end,當你的IIS池被回收或者應用程序被卸載時它會被觸發。應用程序也會在需要的文件發生更改時重新加載。

相關問題