我想知道在什么情况下我应该在我的文件中将应用程序初始化代码放入Application_Start()
vs ?Init()
Global.asax
两者之间的区别对我来说似乎并不是很明显,除了Application_start
首先被调用之外Init()
.
为什么我会使用一个而不是另一个?
它真的有所作为吗?
两个事件之间的应用程序状态有何变化?
到目前为止,我能找到的唯一真正的指针是IHttpModule
只有一个Init()
方法,所以如果我正在做的事情在某些时候可能更适合实现IHttpModule
我应该使用Init()
方法Global.asax
,如果没有别的一致性.
来自MSDN文档:
Application_Start和Application_End方法是不代表HttpApplication事件的特殊方法.ASP.NET 在应用程序域的生命周期内调用它们一次,而不是为每个HttpApplication实例调用它们.
在里面:
在创建所有模块后,为HttpApplication类的每个实例调用一次.
更新:如果您需要确保在应用程序中只调用一次特定代码.生命周期,Application_Start是一个更好的解决方案.示例:配置log4net?
是
它们之间存在差异.只有一次调用Application_Start()事件,而每次创建应用程序实例时都会调用Init()方法.