いプログラム終セッションasp.net きます。捨()ないのか。
-
21-08-2019 - |
質問
セッション。捨()ないものです。いいですが、Session_endイベント火災時のセッション。捨()が呼び出されます。
解決
これで SessionMode
は ない InProc
のみを検出できる場合は、セッション終了).
引用 MSDN:
セッションイベント
ASP.NET についてのイベントを また、ユーザーです。の Session_OnStartイベント時に起きる 新しいセッションを開始し、 Session_OnEndイベント時に起きる セッションは捨てられたりします。セッションイベントが指定された グローバルasaxファイル、ASP.NET 願います。
のSession_OnEndイベントではない 対応の場合はセッションモード性 設定値以InProc, デフォルトモードになります。
他のヒント
Session.Abandon()は、セッションを終了する方法です。あなたが発生している問題は何ですか?
その[戻る]ボタンが関連する場合は、、それは全く別の問題(ページ戻るにポストバックしない、代わりにそれはそう何のサーバ側のメソッドが実行されませんクライアント側のキャッシュから1を実行します)です。
また、のSession_Endは問題があります。これは、Session.Abandon上の唯一の火災は、()を使用すると、別のセッションモードを使用しているので、もし、インプロセスセッションを使用している場合、それは当てにすることはできないだろう。そうでなければ、のSession_EndにあるSessionTimeoutに達したときに発生します(デフォルトはのWeb.Configで構成され、私は信じて20分、である)。
次を使用してみましたか?
System.Web.Security.FormsAuthentication.SignOut();
これはあなたが探しているものではないかもしれないけれども、フォーム認証に使用するCookieを削除します。
あなたがSession.Abandonにaddtionでこれを使用する必要があります()
ここでセッション終了が呼び出されたときの話の記事です。
http://www.highoncoding.com/Articles/108_When_is_Session_End_Called__.aspxする
あなたは(web.configファイルで)試してみてください。
<sessionState regenerateExpiredSessionId="true">
これは、依存しています。あなたはこのケースを持っている場合、セッションは第二の点で終了しなければならない、と最初が終了するよりも、タイムアウトが表示されます。少なくとも、あなたはトークンを使用すると、アクティブなセッションの、トークンのリストを維持する必要があります。それはあなたのケースであるかもしれません。幸運を。 PS。セッションを殺すためには、第2のサーバでそれを管理します。