2010-06-24 251 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。