我只是在阅读这篇文章"When is IHttpModule.Dispose method called?"我发现了这个



我不认为这是100%正确的,即IHttpModule.Dispose并不总是跟在Application_End之后。假设我有多个Application对象实例正在为我的应用程序运行,这意味着Application对象的每个实例内部都会有模块的单独实例。现在,假设应用程序池中充满了应用程序实例的时候到了,那会发生什么呢?不会开始一个接一个地放置应用程序实例,并且将在链中放置应用程序实例内部的模块。现在,对模块的这种处理并不意味着Application_End将在此之后触发。应用程序仍在运行。我对吗?

最佳答案

是的。

HttpModules是每个HttpApplication。与其名称建议相反,global.asax中的Application_End方法不会在每个HttpApplicaton生命周期的末尾触发。在当前AppDomain中所有HttpApplications生命周期的尽头(当AppDomain被拆除时)将触发该事件。 Application_Start方法也是如此。

09-27 13:32