Application_Start和Application_OnStart之间的区别
我正在将ASP.NET MVC代码添加到预先存在的ASP.NET Webforms项目中。各种教程建议将路由添加到Global.asax中从Application_Start()调用的方法。我的Global.asax已经有一个带有一些设置代码的Application_OnStart(Object,EventArgs)方法。
如果我尝试同时使用Start和OnStart,则不会调用OnStart(并且安装失败,导致错误)。看起来我必须选择其中一个。
我的问题是:我应该使用哪一个?它们之间有什么区别?他们是在不同时间打电话吗?
(注意:在撰写本文时,Google的三大热门内容无用和/或具有误导性。我希望Stack Overflow可以解决这个问题。)
没有找到相关结果
已邀请:
3 个回复
脖呐
方法,它会在页面生命周期中响应Page类触发Load事件而自动调用。 使用相同的技术将处理程序附加到应用程序级生命周期事件。它将查找名为ModuleName_EventName或ModuleName_OnEventName的方法,不带参数
或
这是有趣的部分 - 如果您定义了多个匹配方法,则只会执行文件中最新显示的方法。 (最后一种方法胜利,基本上) 所以如果你的global.asax.cs看起来像这样:
你会在调试输出中看到消息D;如果你注释掉该块中的最后一个方法,你会看到消息C. 因此 - 使用您喜欢的任何命名约定,但如果您定义多个命名约定,则只会执行源文件中最后出现的那个。我个人坚持使用
,因为这是Visual Studio项目模板和大多数.NET设计/编码工具生成的签名。
擅香
冉案
: 在处理任何.asp文件之前调用Application_OnStart函数 - 在呈现任何文本或图形并将其发送到用户的浏览器之前。在此函数中,以下对Active Server Pages Server对象上的CreateObject方法的调用将创建CDO Rendering Library RenderingApplication对象。如果此调用成功,则objRenderApp变量包含指向新对象的指针。 我能找到的所有引用都引用.asp页面
Application_Start和Application_End方法是不代表HttpApplication事件的特殊方法。 ASP.NET在应用程序域的生命周期内调用它们一次,而不是为每个HttpApplication实例调用它们。 此页面引用.aspx页面。因此,当您使用MVC并提及global.asax时,这是您应该使用的那个。