質問

設定しました 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

ところで:ASP.NET Session_Endイベントが発生しません

テストのヒント: 使用する Session.Abandon したがって、実際のweb.config値を台無しにする必要はありません。セッション値を設定して電話しないでください Session.Abandon 同じリクエストの間に、または保存されません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top