18

Web.ConfigASP.NETMVC2プロジェクトで次のよう にファイルを構成しました。

<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分後に呼び出されると思っていたのですが、そうではありません。私は何かが足りないのですか?

4

3 に答える 3

13

これを覚えて:

セッションに何も保存しない場合、session_end は起動しません。最初のリクエストでセッションにデータを保存し、同じリクエストで放棄を呼び出した場合、session_end も起動されません。

お役に立てれば!

T

ところで: ASP.NET Session_End イベントが発生しない

于 2013-04-03T01:59:28.393 に答える
10

我慢して。イベントは呼び出される必要がありますが、タイムアウトの直後である必要はありません。

ブラウザから試すことができます:セッションを開始し、1分以上待って、何らかの方法でポストバックを実行します

これは、タイムアウトが機能することを確認するのに役立ちます。また、その時点で SessionEnd が発生していることも確認できると思います。それ以外の場合は、待ってから他のセッションを開始してください。システムはいつかそれを呼び出すようになります。

于 2010-03-03T17:04:20.943 に答える
3

テストのヒント:Session.Abandon実際のweb.config値をいじる必要がないように使用してください。同じリクエスト中にセッション値を設定して呼び出さないでください。そうしSession.Abandonないと、保存されません。

于 2011-05-09T03:06:46.947 に答える