2009-10-29 55 views
2

我正在處理的當前應用程序似乎經常回收應用程序池,但當它結束時,id不會傳遞應用程序結束或應用程序啓動。
這就是我的Global.asax的樣子。應用程序能否在不傳遞Application_End或Application_Error的情況下「死掉」?

protected void Application_Start(object sender, EventArgs e) 
{ 
    _log.Info("Application_Start"); 
} 
    protected void Application_End(object sender, EventArgs e) 
{ 
    _log.Info("Application_End"); 
} 
    protected void Application_Error(object sender, EventArgs e) 
{ 
    _log.Error("Application_Error"); 
    _log.Error(Server.GetLastError()); 
} 

什麼會導致應用程序「死」而不傳遞End或Error?

回答

3

從技術上講,它應該與應用程序池重置。有可能是某些東西正在處置_log對象,或將其置於導致其無法登錄的狀態?

這不會是你的情況,以幫助,但我加入了,而我試圖找到答案,因爲它是有點相關的和一些需要注意的:

http://forums.asp.net/p/948103/1152361.aspx#1152361

嘗試將事件切換到Application_OnEnd並查看是否有效。我看到另一篇文章在談論這個。 http://bytes.com/topic/asp-net/answers/326302-application_end-not-fired-when-app-unloaded-why

+0

System.StackOverflowException在這種情況下是壞人。感謝您的幫助:)我無法編輯您的文章,所以如果您將這條信息添加到您的文章中,這將是很好的。 – 2009-10-29 15:31:24

相關問題