当前位置:  开发笔记 > 编程语言 > 正文

何时在Global.asax中使用Application_Start vs Init?

如何解决《何时在Global.asax中使用Application_StartvsInit?》经验,为你挑选了2个好方法。

我想知道在什么情况下我应该在我的文件中将应用程序初始化代码放入Application_Start()vs ?Init()Global.asax

两者之间的区别对我来说似乎并不是很明显,除了Application_start首先被调用之外Init().

为什么我会使用一个而不是另一个?

它真的有所作为吗?

两个事件之间的应用程序状态有何变化?

到目前为止,我能找到的唯一真正的指针是IHttpModule只有一个Init()方法,所以如果我正在做的事情在某些时候可能更适合实现IHttpModule我应该使用Init()方法Global.asax,如果没有别的一致性.



1> Igor Brejc..:

来自MSDN文档:

Application_Start和Application_End方法是不代表HttpApplication事件的特殊方法.ASP.NET 在应用程序域的生命周期内调用它们一次,而不是为每个HttpApplication实例调用它们.

在里面:

在创建所有模块后,为HttpApplication类的每个实例调用一次.

更新:如果您需要确保在应用程序中只调用一次特定代码.生命周期,Application_Start是一个更好的解决方案.示例:配置log4net?


后续问题的一点:什么时候创建了HttpApplication的实例?我假设每次重新启动worker-process并且每个worker-thread包含一个实例?

2> 小智..:

它们之间存在差异.只有一次调用Application_Start()事件,而每次创建应用程序实例时都会调用Init()方法.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有