C# · 12月 30, 2021

c# – 每个进程初始化System.Web.HttpApplication的次数

我有global.asax从我创建的自定义类扩展,名为MvcApplication,它从System.Web.HttpApplication扩展.

在它的构造函数中,它记录下面的应用程序启动:

protected MvcApplicationGeneral(){ _log.Info(“logApplicationStartToTextFile”);}

当我去查看日志文件时,这似乎被称为大量的次数,而不仅仅是每次应用启动一次.我在Application_Start中放置了另一个日志条目,似乎只被调用一次.是否根据请求实例化了Global.asax类,或者比每个应用程序更频繁地执行一次?

解决方法 创建和汇集了HttpAppliction对象的多个意图,以便在asp.net应用程序的生命周期中处理请求.
yes 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实例可能会重复用于多个请求.