Asp.net-Mvc

ASP.NET MVC 中何時呼叫 Session_End()?

  • March 3, 2010

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()當新使用者訪問網站時呼叫。我本來希望Session_End()在 1 分鐘的空閒時間後被呼叫,但事實並非如此。我錯過了什麼嗎?

耐心點。應該呼叫該事件,但不一定在超時後立即呼叫。

您可以從瀏覽器嘗試:開始會話,等待 > 1 分鐘,以某種方式進行回發

這應該有助於驗證 Timeout 是否有效,我認為您也會看到 SessionEnd 發生在那個時候。否則,只需等待並開始其他一些會話。系統會在某個時候出現或呼叫它。

記住這一點:

如果您不將任何內容保存到會話中,則 session_end 將不會觸發。如果您在第一個請求中將數據保存在會話中,並在同一請求中呼叫放棄,則 session_end 也不會觸發。

希望這可以幫助!

順便說一句: ASP.NET Session_End 事件未觸發

引用自:https://stackoverflow.com/questions/2373209