2010-06-24 250 views
2

我正在使用Visual Studio 2005,並從它內部運行我的應用程序,直接使用其開發應用程序服務器。Asp.NET Global.asax - 應用程序生命週期

如果我在Application_Start內部設置了一個斷點,並且在Session_Start內部設置了一個斷點,那麼後者是首先到達的,我真的認爲它應該是相反的方式。

有什麼想法?

回答

9

默認情況下,Application_Start事件在運行應用程序時不會再次被觸發,除非Web開發服務器停止並重新啓動。

在Visual Studio中有一個設置,用於在每次啓動時強制Web開發服務器進程被回收。只需右鍵單擊項目文件> Web>選中啓用編輯並繼續。這會在每次調試時強制執行A​​SP.Net Web Server進程的回收。

2

很抱歉這麼說,但你錯了。應用程序首先啓動,並且Application_Start在應用程序的整個生命週期中被打一次 - 在應用程序啓動後,任何會話都可以啓動,通常每個用戶一個。請參閱MSDN上的ASP .NET Application Life CycleASP .NET Page Life Cycle以供參考。

+0

我真的希望我是,但俄羅斯是正確的:實際上,開發服務器已經啓動,應用程序已部署。從Visual Studio中停止/啓動應用程序不會重新運行整個應用程序生命週期。 – 2010-06-24 19:28:38

0

Application_Start在您的應用程序首次加載到內存時觸發。這應該在每次AppPool在IIS中回收時觸發。如果你正在談論VS本地Web開發服務器,它應該重新編譯或者停止並重新啓動以達到Application_Start。