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