Global.asax.cs扩展的HttpApplication类是否存在于应用程序的生命周期?
实例何时可以创建/销毁?
我遇到了应用程序启动两次,这似乎是与应用程序池回收和请求的一部分方式通过这个过程.我没有调试它,我没有时间在深入这样做.那么,关于上述问题,以下是一个安全的解决方案?
public class MvcApplication : System.Web.HttpApplication { public static object syncLock = new object(); public static bool applicationBooted; protected void Application_Start() { if(!applicationBooted) lock (syncLock) if(!applicationBooted) { // bootstrap here applicationBooted = true; } } }
解决方法
如果您在日志中看到事件两次,请检查应用程序池是否设置为生成单个工作进程.每个工作进程将创建自己的HttpAppication实例.