2010-09-22 47 views
1

Application_StartApplication_End被稱爲只有一次 - 因此,他們不叫每個HttpApplication例如將Application_End應用程序域的生命週期中被解僱,即使...

Application_Start運行時,第一個用戶請求一個頁面,因此當HttpApplication類的第一個實例被創建,而Application_EndHttpApplication類的最後一個實例被銷燬時運行。

但是,如果在應用程序域重新啓動時沒有任何用戶請求,因此沒有創建HttpApplication實例?在這種情況下,Application_End仍然會被解僱嗎?

謝謝

+1

我猜測沒有(如果Application_Start沒有觸發,Application_End不應該),但是你可以通過寫入日誌來輕鬆測試。 – 2010-09-22 19:08:48

+0

如果Application_Start被觸發,即使在運行時決定應該重新啓動應用程序域時沒有請求,Application_End也會被觸發嗎? – user437291 2010-09-22 19:18:15

回答

1

如果我正確理解你的問題,你說沒有請求取之不盡,如果沒有請求過進來的應用程序將不會被啓動(即無的Application_Start觸發),因此沒有Application_end也不會觸發。

這不能承受任何一種「預熱」代碼,它會在接收到請求之前觸發應用程序,以加載緩存或類似的東西。

+0

預熱通常會作爲請求或設置或請求來完成,因此Application_Start將被調用。 – Oded 2010-09-22 19:12:02

+0

「如果應用程序中沒有請求將永遠不會啓動(即,沒有Application_Start被觸發),因此Application_end也不會觸發。」所以如果Application_Start沒有被觸發,那麼Application_End也不會被觸發。但是如果Application_Start被觸發,那麼即使在運行時決定應該重新啓動應用程序域時沒有請求,Application_End也會被觸發嗎? – user437291 2010-09-22 19:20:10

+1

是的,如果Application_Start被觸發,無論出於何種原因,那麼Application_End也應該被觸發。 – CodingGorilla 2010-09-22 19:26:41

相關問題