- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 ASP MVC 2 和 Nhibernate。我创建了一个 HTTP 模块,如 NHibernate 13 Summer 中所示,如下所示:
public void Init(HttpApplication context)
{
context.PreRequestHandlerExecute += new EventHandler(Application_BeginRequest);
context.PostRequestHandlerExecute += new EventHandler(Application_EndRequest);
}
private void Application_BeginRequest(object sender, EventArgs e)
{
ISession session = StaticSessionManager.OpenSession();
session.BeginTransaction();
CurrentSessionContext.Bind(session);
}
private void Application_EndRequest(object sender, EventArgs e)
{
ISession session = CurrentSessionContext.Unbind(StaticSessionManager.SessionFactory);
if (session != null)
try
{
session.Transaction.Commit();
}
catch (Exception)
{
session.Transaction.Rollback();
}
finally
{
session.Flush();
session.Close();
}
}
网络配置
<add name="UnitOfWork" type="HttpModules.UnitOfWork"/>
我的问题是 Application_EndRequest 永远不会在出现 404 错误时被调用,所以如果我的 View 没有呈现,我将完全阻止数据库访问,直到我的刷新发生。我是 NHibernate 的新手,所以我不确定我是否遗漏了什么。
最佳答案
您可以在 application_error 中处理和回滚 session 。将 session.close 更改为 session.dispose 并检查它是否尚未处理。
关于c# - Application_EndRequest 不会在 404 上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2450687/
我们在 IIS 6 中托管了一个 ASMX 网络服务,并且发现我们的一个 WebMethod 出现了一些奇怪的行为。 iisreset 后,对特定方法的第一次调用无法返回到客户端,该方法会在 60 秒
我有一些简单的类需要在请求结束时进行处理。 为此,我调用 Dispose来自 Application_EndRequest 的对象的方法Global.asax 中的事件. 这“在我的机器上运行良好”但
我遇到了存储在 HttpContext.Current.Items 中的 EF4 对象上下文的问题,然后希望在完全处理请求后立即处理。 在 Aplication_EndRequest 事件上,我调用
我正在使用 ASP MVC 2 和 Nhibernate。我创建了一个 HTTP 模块,如 NHibernate 13 Summer 中所示,如下所示: public void Init(HttpAp
我正在构建一个连接到 Application_EndRequest/Application_BeginRequest 的简单性能记录器 我想将 action 和 controller 的名称作为某种
我正在将一个 ASP.NET Web API 应用程序迁移到 OWIN。这并不是要使用 none OWIN 部署。所以 Global.asax 将被删除。 Global.asax 事件处理程序中有一些
我想添加一些日志记录,记录 .Net Web 应用程序处理请求所需的时间。 我的想法是使用 Application_BeginRequest和 Application_EndRequest , 我可以
我看到了这段关于日志记录的代码片段: https://serverfault.com/questions/90943/iis-log-request-body-post-data 它使用 Applic
作为测试,我使用 Visual Studio 2013 中的最新模板创建了一个新的 Asp.Net MVC5 应用程序。我将以下方法添加到 Global.asax.cs: protected
我是一名优秀的程序员,十分优秀!