Asp.net Session对象停止问题!

来源:百度知道 编辑:UC知道 时间:2024/05/12 15:04:10
使用ASP.NET的session时,我遇到了一个这样的问题:
我做了一个记数器,用来统计在线人数,当有一个用户时显示1,有两个用户时显示2.问题来了!

A用户打开浏览器访问本站,显示有一个用户在线,B用户跟着也访问本站,此时显示有2人在线。这时A用户关闭浏览器停止访问本站,些时应只有1人在线(只有B用户)但还是显示有2 人在线,非要等session会话时间到是IIS才消掉A的session,IIS的默时间是20分钟,虽然可以改成1分钟一消,但是还是要等 ,如何让用户的浏览器一关闭就清空他的sesion?
session_end 事件关闭浏览器不发生!

<sessionState mode="StateServer" cookieless="false" timeout="0" stateConnectionString="tcpip=127.0.0.1:42424"></sessionState>

这样呢?要不就是在用户关闭页面的时候打开一个大小为0的页面,清空session,或者Global.asax.cs OnSessionEnd

你写了一个在线统计次数的代码对吧!
你只是单一的文件,是吗?没有文本来存储值,对吗?
如果你用session来写的话。
它的默认值是20分钟,不错,但是你关闭浏览器后,他就有重头在来,对吧!如果你不关浏览器,等待20分钟后,他也重头在来对吧!

你关闭浏览器,存储在内存中的session就消失了,

如果你想实现你的功能,只能用application,他是一个公共的,而session是一个私有的。

application的语法与session一样。你只需要把session改成application即可。