ASP.Net MVC Nhibernate Session

时间:2010-08-06 12:41:33

标签: asp.net-mvc nhibernate

当转移到MVC,现在转移到IIS7时,我们开始遇到问题,即每个请求(静态文件等)都会调用打开和关闭ISession的HTTP模块。我想避免完全重写NH会话管理,所以我在我的模块中实现了这个代码,过滤除了请求转到mvchandler之外的所有内容:

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
        }
}

我的问题是,我从未在请求​​pipline中使用过此事件。那么,这样做有什么隐藏的陷阱吗?另外,我是否在查看每个请求运行此检查时的性能问题?我还没有注意到任何东西,但这是一个新的,仍然很小的应用程序。

1 个答案:

答案 0 :(得分:0)

虽然这并没有专门解决您的问题,但应该注意的是,开设会话的费用为very minimal。因此,您可能会考虑首先执行此检查。