2010-03-03 159 views
15

我已經配置我的Web.Config文件作爲後續的ASP.NET MVC 2項目:什麼時候在ASP.NET MVC中調用Session_End()?

<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分鐘後被調用,但事實並非如此。我錯過了什麼嗎?

回答

8

要有耐心。該事件應該被調用,但不一定在超時之後。

你可以嘗試從瀏覽器:啓動一個會話,等待> 1分鐘,做一回發莫名其妙

這將有助於驗證超時工作,我想你也會看到SESSIONEND發生在那個時候。否則,請等待並開始其他會話。系統會在某個時間調用它。

+0

有趣,我會想到這會叫它就在1分鐘大關 – 2010-03-03 17:21:40

1

提示測試:使用Session.Abandon所以你不必亂搞你的實際web.config值。只是不要設置會話值,並在同一請求期間調用Session.Abandon,否則它將不會被存儲。

下面是更多的一些信息的一篇文章有​​關session_end

8

記住這一點:

如果不保存任何東西到會議上,Session_End中不會 火。如果您在第一個請求中將會話中的數據保存起來,並且在同樣的請求中調用abandon,那麼session_end也不會被觸發。

希望這會有所幫助!

牛逼

BTW: ASP.NET Session_End event not firing

相關問題