2010-03-03 58 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

相关问题