Session_End会在窗口关闭时触发吗?(ASP.NET)

Jes*_*per 4 asp.net session global-asax

我在网站上放了一个"在线"柜台,我遇到了这两个矛盾的来源.

这一个(我使用这个示例代码):

http://aspdotnetfaq.com/Faq/How-to-show-number-of-online-users-visitors-for-ASP-NET-website.aspx

......说:

此外,当用户关闭浏览器或未点击我们网站中的任何链接时,会话过期,我们的"OnlineUsers"全局变量也会减少.

但是,这一个:

http://www.velocityreviews.com/forums/t383710-session-end-guarantee.html

......说:

关闭浏览器窗口或浏览到另一个站点不会导致Session_End触发,至少不会直接触发 - 服务器绝对无法知道客户端计算机上发生了什么,直到它从它获得另一个HttpRequest.在这种情况下,Session_End将在会话自然超时时触发.

我已经测试过,似乎Session_End没有开火.

我基本上希望你们对此进行确认或评论.

浏览器关闭时是否可以更新在线计数器?

Waq*_*aja 7

第二个是真的

关闭浏览器窗口或浏览到另一个站点不会导致Session_End触发,至少不会直接触发 - 服务器绝对无法知道客户端计算机上发生了什么,直到它从它获得另一个HttpRequest.在这种情况下,Session_End将在会话自然超时时触发.

默认情况下,会话超时为20分钟.您可以通过不在您的网站上进行任何活动20分钟来确认这一点.