ASP.NET MVCでsession_end()はいつ呼び出されますか?
-
24-09-2019 - |
質問
設定しました Web.Config
ASP.NET MVC 2プロジェクトをフォローするようにファイル:
<sessionState mode="InProc" timeout="1"/>
以下を追加しました Global.asax.cs
:
protected void Session_End(object sender, EventArgs e)
{
System.Diagnostics.Debug.WriteLine("Session_End");
}
protected void Session_Start(object sender, EventArgs e)
{
System.Diagnostics.Debug.WriteLine("Session_Start");
}
Session_Start()
新しいユーザーがWebサイトにアクセスしたときに呼び出されます。私は期待していただろう Session_End()
アイドル時間の1分後に呼び出されますが、そうではありません。私は何かが足りませんか?
解決
我慢して。イベントは呼び出す必要がありますが、必ずしもタイムアウト直後ではありません。
ブラウザから試してみることができます:セッションを開始し、1分> 1分間待って、どういうわけかポストバックをします
これは、タイムアウトが機能することを確認するのに役立ち、その時点でセッションエンドが起こっているのを見ると思います。それ以外の場合は、待って他のセッションを開始してください。システムは、いつかそれを呼び出します。
他のヒント
これを覚えて:
セッションに何も保存しない場合、Session_Endは起動しません。最初のリクエストでセッションでデータを保存し、同じリクエストで放棄を呼び出している場合、Session_Endも起動しません。
お役に立てれば!
t
テストのヒント: 使用する Session.Abandon
したがって、実際のweb.config値を台無しにする必要はありません。セッション値を設定して電話しないでください Session.Abandon
同じリクエストの間に、または保存されません。
所属していません StackOverflow