2010-12-08 12 views
3

私はすでにこれに似た質問を見たことがあります。hereです。私は本質的に同じ質問をしているが、小さな紆余曲折を持っている。ASP.NET MVC:Session_Endのセッションデータにアクセスするか、直前のイベントにアクセスする

私はSession_Endメソッド内からセッション情報にアクセスしようとしていますが、HttpContextはそこに到達するまでにはnullです。実際にアクセスする方法は見つかっていません。 Session_Endの火災で既に完全に消去されているようです。

関連する問題の解決策では、this.Sessionを使用して、必要なセッション情報を参照することができます。このセッション情報は、HttpApplicationクラスGlobalから継承されたHttpApplication.Session変数にアクセスします。しかし、私のアプリケーションでは、我々はこのように見えるように、グローバルでのセッション変数に自分自身を再定義しました:

public new static HttpSessionState Session 
    { 
     get 
     { 
      return HttpContext.Current.ApplicationInstance.Session; 
     } 
    } 

をだから、私にとって、nullであるのHttpContext、外の情報を取得しようとしますthis.Sessionを参照します。

私は2つの質問があると思います。まず、Session_Endの前、しかしセッションデータがクリアされる前に発生するイベントはありますか?第二に、最初の質問に対する答えが「いいえ」の場合、Session_Endからそのデータにアクセスする方法はまだありますか?

ありがとうございました。

答えて

0

あなたがin_procセッションステートモードを使用している場合にのみsession_endが発生することに注意してください。サーバーファームにWebアプリケーションをデプロイすると、セッションが生成されません。 とにかく、あなたが達成したいことがわからなくても、HttpModule内でセッションの終了を処理する方が良いでしょう。下記のリンクをご覧ください:

http://www.codeproject.com/KB/aspnet/SessionEndStatePersister.aspx