0
当转移到MVC和现在的IIS7时,我们开始遇到问题,即在每个请求(静态文件等)上调用了打开和关闭ISession的HTTP模块。我想避免这样做NH会话管理的全部重写,所以我在我的模块中实现此代码,以过滤掉一切,但请求要去mvchandler:ASP.Net MVC Nhibernate Session
void context_PreRequestHandlerExecute(object sender, System.EventArgs e)
{
HttpContext context = ((HttpApplication)sender).Context;
Type mvcht = typeof(System.Web.Mvc.MvcHandler);
if (context.Handler != null && context.Handler.GetType().IsAssignableFrom(mvcht))
{
// Code Here
}
}
我的问题是,我从来没有使用此事件在请求管道中。那么,这样做有没有隐藏的陷阱?另外,我是否在为每个请求运行此检查时查看性能问题?我还没有注意到,但这是一个新的,但仍然很小的应用程序。
确实如此,但是推动我的优势在于,当end_request事件针对某些非MVC请求触发时,我会在当前会话中随机获取null ref异常。 – CocoB 2010-08-06 13:47:52
在这种情况下,我会看看:http://blogs.iis.net/thomad/archive/2006/11/04/precondition-what.aspx - 您可能能够纯粹通过配置模块。 – DanP 2010-08-06 14:03:00