2012-04-16 16 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; 
      } 
     } 
    } 

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の電子)

は少し混乱したとありました理由ですので、ページの実行が完了発射今理解[OK]を問題。

+5

あなたはちょうどあなたが何を言ったか分かりません。 – md1337

関連する問題