根据
this MSDN article HttpApplication.EndRequest可用于关闭或处置资源.但是,在我的应用程序中不会触发/调用此事件.
我们通过以下方式在Page_Load中附加处理程序:
HttpContext.Current.ApplicationInstance.EndRequest += ApplicationInstance_EndRequest;
唯一的方法是在Global.asax中使用Application_EndRequest处理程序,但这对我们来说是不可接受的.
解决方法
如果您不想使用global.asax,可以使用自己的HttpModule捕获EndRequest.
public class CustomModule : IHttpModule { public void Init(HttpApplication context) { context.EndRequest += new EventHandler(context_EndRequest); } private void context_EndRequest(object sender,EventArgs e) { HttpContext context = ((HttpApplication)sender).Context; // use your contect here } }
您需要将模块添加到web.config中
<httpModules> <add name="CustomModule" type="CustomModule"/> </httpModules>