关于Global.asax中的Session_End
2008-05-23 09:06
302 查看
在练习使用ASP.NET, 想要实现记录在线访问人数的功能时想到了Global.asax文件。于是试着使用其中的Session_Start和Session_End。发现每当有新用户访问时,Session_Start中的代码总能被执行,而Session_End中的就得不到执行。也像下面这样设置了Web.Configue文件: <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" stateNetworkTimeout="10" sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI" sqlCommandTimeout="30" customProvider="" cookieless="UseCookies" cookieName="ASP.NET_SessionId" timeout="2" allowCustomSqlDatabase="false" regenerateExpiredSessionId="true" partitionResolverType="" useHostingIdentity="true"> <providers> <clear /> </providers> </sessionState>
如果按照设置来说,
至少应该在Session过期(2秒钟)的时间,执行Session_End中的代码,把在线人数-1.
但是却发现关闭浏览器之后等2秒钟,是不行的,要是等上几分钟,倒是可以。
不知道何解。
想到了一个折中的办法,
把母板页上加入了退出按钮,里面执行Session.Abandon() 方法
但是怎么样才能让用户关闭了浏览器,断开了和网站的联系,并且Session一过期,就执行Session_End里的代码呢?
如果按照设置来说,
至少应该在Session过期(2秒钟)的时间,执行Session_End中的代码,把在线人数-1.
但是却发现关闭浏览器之后等2秒钟,是不行的,要是等上几分钟,倒是可以。
不知道何解。
想到了一个折中的办法,
把母板页上加入了退出按钮,里面执行Session.Abandon() 方法
但是怎么样才能让用户关闭了浏览器,断开了和网站的联系,并且Session一过期,就执行Session_End里的代码呢?
相关文章推荐
- 【转】ASP.NET之 关于触发Global.asax Session_End事件的经验
- 关于触发asp.net Global.asax Session_End事件的经验
- 通过Global.asax文件里面的Session_End事件记录用户退出 (or session timeout)
- 关于如何解决Global.asax中Session_Start不执行的问题
- ASP.NET关于Session_End触发与否的问题
- 关于Global.asa文件的深入研究与session变量失效提示的具体方法
- 有无Global.asax文件对Session的影响
- ASP.NET-关于Global.asax的作用
- 关于ASP.NET 中 Global.asax 文件的后台事件处理程序
- 关于Global.asax文件不被执行的问题
- 关于Session_End()运行机制的一些细节!
- 关于向Global.asax页面中引用命名空间
- global.asax和Session
- 关于Global.asa文件的深入研究与session变量失效提示的具体方法
- 关于Global.asax的作用
- 关于global.asax (摘抄)
- 转:关于 Global.asax 文件
- 关于Global.asax文件不被执行的问题
- 在Global.asax、HttpModule中使用Session
- 关于Global.asax,ProfileCommon,ProfileBase,ProfileModule,profile,Profile_MigrateAnonyMous,ProfileMigrateEventArgs