簡體   English   中英

Application_End未運行

[英]Application_End Not Running

我是C#的新手,所以請耐心等待。

我有一個在Global.asax.cs文件中的Application_Start函數中運行的函數,這在我開始調試時工作正常。

但是當我停止調試時,我在Application_End函數中的函數似乎沒有啟動。 我想知道這是否與調試有關,或者只是我的代碼中的錯誤。

我猜應用程序永遠不會結束。 在調試(使用Cassandra或IIS Express)或在IIS本身上運行安裝時,應用程序不會在調試會話結束時結束。

在IIS上,它在工作進程停止時結束。 這會在一段時間后自動發生,具體取決於您的應用程序池設置。

在Cassandra和IIS Express中,當進程正常結束時會發生。 我想知道他們是否定期在這些裝置上進行調用。

在Application_End中放入大量需要依賴觸發的代碼通常不是一個好主意。 考慮到ApplicationInstance將啟動到將為您的應用程序提供服務的工作進程的每個線程,您將遇到在忙碌的站點上頻繁調用Application_End的情況,因為流量會消耗和流動。

當對象從Cache到期時,您可能會發現使用具有滑動過期和回調函數的Cache對象更容易,以確保在需要時正確調用清理代碼。

http://msdn.microsoft.com/en-us/library/05kd8d77(v=vs.110).aspx

我有一個類似的問題,其中沒有調用Application_End ,因為當要求停止應用程序時有線程運行,並且因為只有在一切都停止正常后調用此方法。

然后,我發現了Application_Disposed 來自http://www.techrepublic.com/article/working-with-the-aspnet-globalasax-file/5771721/

Application_Disposed:在銷毀應用程序之前觸發。 這是清理以前使用的資源的理想位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM