日期:2014-05-17  浏览次数:20480 次

各位大神求帮忙:关于Session的问题!!!
我要完成的功能是统计登录人数,注销或关闭浏览器人数都要减少,但是SessionState模式为StateServer,注销和关闭浏览器都不能触发Session_End事件。如果我创建Session过期机制,设置Session.TimeOut=1,这样能触发Session_End事件吗?如果不能,那我把人数减少的相关代码写在哪里?求各位大神帮帮忙
------解决方案--------------------
统计人数用 Application吧,查下别人怎么写的
------解决方案--------------------
引用:
Quote: 引用:

Session_End。。。思路错了吧,关闭浏览器这个是无法预知的,你应该判断客户端与服务器30秒内无交互,就等于下线

不是30秒,是30分组
别激动,是30分钟~
------解决方案--------------------
LZ头像好萌~~


------解决方案--------------------
统计登录人数时,关闭浏览器的肯定没办法精确的,只能靠超时了
------解决方案--------------------
引用:
引用
统计登录人数时,关闭浏览器的肯定没办法精确的,只能靠超时了
没有其他办法吗?如果超时,在StateServer模式下,能触发Session_End事件?Session_End只能在InProc模式下触发啊。

对的。用InProc
超时也没什么啊,在线人数统计也不需要那么精确。
你看其他bbs的人数统计也不精确嘛。
------解决方案--------------------
引用:
引用
统计登录人数时,关闭浏览器的肯定没办法精确的,只能靠超时了
没有其他办法吗?如果超时,在StateServer模式下,能触发Session_End事件?Session_End只能在InProc模式下触发啊。

不能用session_end的话就不要用session了,直接用cache+sessionid的方法保存session

------解决方案--------------------

------解决方案--------------------
浏览器关闭时会触发脚本的unload时间,可以考虑从这方面下手。