Asp.NET Global.asax - 应用程序生命周期
我正在使用 Visual Studio 2005,并直接使用其开发应用程序服务器从其中运行我的应用程序。
如果我在 Application_Start 内设置一个断点,并在 Session_Start 内设置一个断点,则首先到达后者,老实说,我认为应该是相反的。
有什么想法吗?
I am using Visual Studio 2005, and running my application from inside it, directly using its development application server.
If I set a breakpoint inside Application_Start and one inside Session_Start, the latter is reached first, and I honestly think it should be the other way around.
Any thoughts?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
默认情况下,除非停止并重新启动 Web 开发服务器,否则在运行应用程序时不会再次触发
Application_Start
事件。Visual Studio 中有一个设置可以强制在每次启动时回收 Web 开发服务器进程。只需右键单击项目文件>网页>选中启用编辑并继续。这会强制在每次调试运行时回收 ASP.Net Web 服务器进程。
by default, the
Application_Start
event will not be hit again whilst running the application unless the web development server is stopped and restarted.There's a setting in Visual Studio to force the web development server process to be recycled on each launch. Simply right-click the project file > Web > check Enable Edit and Continue. This forces a recycle of the ASP.Net Web Server process on every debug run.
很抱歉这么说,但你错了。应用程序首先启动,并且在应用程序的生命周期内,Application_Start 会被点击一次 - 应用程序启动后,任何会话都可以启动,通常每个用户一个。请参阅 ASP .NET 应用程序生命周期 和 ASP .NET 页面生命周期供参考。
Sorry to say so, but you are wrong. The application starts first, and Application_Start is hit once for the lifetime of the application - after application startup, any sessions may start, typically one per user. See ASP .NET Application Life Cycle and ASP .NET Page Life Cycle on MSDN for reference.
当您的应用程序第一次加载到内存中时,Application_Start 就会被触发。每次 AppPool 在 IIS 中回收时都会触发此操作。如果您谈论的是 VS 本地 Web 开发服务器,则应该重新编译或停止并重新启动才能到达 Application_Start。
The Application_Start is fired the first time your application is loaded into memory. This should trigger every time the AppPool recycles in IIS. If you're talking about the VS local web dev server, it should take a recompile or a stopping and restarting in order to reach Application_Start.