2013-10-24 21 views
9

我有global.asax,它从我创建的自定义类扩展而来,名为MvcApplication,它的扩展名为System.Web.HttpApplication每个进程初始化System.Web.HttpApplication多少次

在它的构造,它记录应用程序启动按如下:

当我在日志文件看,这好像是叫的时间很多,不只是每个应用程序启动一次。我在Application_Start中放置了另一个日志条目,这似乎只被调用一次。每个请求实例化Global.asax类,还是比每个应用程序只有一次频繁得多?

回答

30

创建并处理HttpAppliction对象的多个实例以在asp.net应用程序的生命周期中处理请求。 是Application_Start只会被调用一次。

参阅http://www.codeproject.com/Articles/73728/ASP-NET-Application-and-Page-Life-Cycle

摘录: 一旦创建所有的核心ASP.NET对象,“的HttpApplication”对象被创建以服务该请求。如果你的系统中有'global.asax'文件,那么将会创建'global.asax'文件的对象。请注意global.asax文件从'HttpApplication'类继承。 注意:第一次将ASP.NET页面附加到应用程序时,会创建一个新的“HttpApplication”实例。为了最大限度地提高性能,HttpApplication实例可以重用于多个请求。

enter image description here

+0

感谢您的支持!不知何故,我总是认为这是一个HttpApplication每个请求,很高兴知道这一点。 –

+0

欢迎您! – Saranya

+0

高超图了解应用程序的流程 – umer