2012-04-16 2 views
0

Когда я запускаю свой метод в global.asax, он не запускается, и когда я использую модуль IHttp, он работает. Пожалуйста, дайте совет. Может быть, это вызвано из:Глобальный asax и application_endrequest asp.net

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

Global:

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

ответ

0

Хорошо я теперь понимаю PostRequestHandlerExecute выстреливает страница завершает выполнение так имя

частной ничтожной Application_EndRequest (отправитель объекта, EventArgs е)

было немного запутанным, и именно поэтому был проблема.

+5

Я понятия не имею, что вы только что сказали. – md1337

Смежные вопросы