全球阿萨克斯和application_endrequest asp.net



当我在global.asax中运行我的方法时,它不会运行,当我使用IHttp模块时它正在工作。请提供任何建议。也许是由于:

 context.PostRequestHandlerExecute += new EventHandler(Application_EndRequest);

是否可以在没有模块的情况下调用它?

代码示例:

我运行的方法:

    public static void EndSession()
    {
        HttpContext context = HttpContext.Current;
        if (context.Session != null)
        {
            ISession session = context.Session["Session"] as ISession;
            if (context.Session["Session"] != null)
            {
                if (!session.Transaction.IsActive)
                    OpenTransaction(session);
                session.Flush();
                CommitTransaction(session);
                session.Close();
                context.Session["Session"] = null;
            }
        }
    }

全球:

    private void Application_EndRequest(object sender, EventArgs e)
    {
       NhSessionHelper.EndSession();
    }

IHTTPMODULE:

namespace MME.DAL.SesionManager
       {
    internal class SessionRequest : IHttpModule
    {
        #region Public Methods
        public void Dispose()
        {
        }
        public void Init(HttpApplication context)
        {
            context.PostRequestHandlerExecute += new EventHandler(Application_EndRequest);
        }
        #endregion
        #region Private Methods
        private void Application_EndRequest(object sender, EventArgs e)
        {
           NhSessionHelper.EndSession();
        }
        #endregion
    }
}
好的,

我现在明白了 PostRequestHandlerExecute 触发页面完成执行,因此名称

private void Application_EndRequest(Object sender, EventArgs e)

有点混乱,这就是为什么有问题。

相关内容

  • 没有找到相关文章

最新更新