代码之家  ›  专栏  ›  技术社区  ›  Brownie

httpmodule中的nhibernate会话和事务管理

  •  9
  • Brownie  · 技术社区  · 14 年前

    我在Web上看到过许多在httpmodule中管理其nhibernate会话和事务的实现。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Restuta    14 年前

    您可以使用某种全局异常处理。现在我在用 System.AppDomain.CurrentDomain.UnhandledException . 在这个处理程序中,您需要调用 Transaction.Rollback() ;还需要考虑设置一些标志(也只在当前请求期间存在),以指示您需要提交事务或回滚。这可以使代码更清晰。

    编辑 或者,您可以使用 HttpApplication

    public class HelloWorldModule : IHttpModule
    {
        void Init(HttpApplication application)
        {
            application.BeginRequest += 
                (new EventHandler(this.Application_BeginRequest));
            application.EndRequest += 
                (new EventHandler(this.Application_EndRequest));
            //this is it
            applicaiton.Error +=
                (new EventHandler(this.Application_Error));
        }