加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

使用asp.net统计在线用户

发布时间:2020-12-16 06:47:23 所属栏目:asp.Net 来源:网络整理
导读:我要创建一个网站,我需要统计在线用户并在主页上显示它.我对使用即用型模块不感兴趣.这是我已经做过的事情: 将Global.asax文件添加到我的项目中 在Global.asax文件中编写以下代码片段: void Application_Start(object sender,EventArgs e) { Application["
我要创建一个网站,我需要统计在线用户并在主页上显示它.我对使用即用型模块不感兴趣.这是我已经做过的事情:

将Global.asax文件添加到我的项目中

在Global.asax文件中编写以下代码片段:

void Application_Start(object sender,EventArgs e) 
{
    Application["OnlineUsers"] = 0;
}

void Session_Start(object sender,EventArgs e) 
{
    Application.Lock();
    Application["OnlineUsers"] = (int)Application["OnlineUsers"] + 1;
    Application.UnLock();
}

void Session_End(object sender,EventArgs e) 
{
    Application.Lock();
    Application["OnlineUsers"] = (int)Application["OnlineUsers"] - 1;
    Application.UnLock();
}

实际上它工作正常,但我发现了以下错误:
?? – >即使用户关闭浏览器,也不会显示在线用户的实际数量
??????因为会话超时仍然存在!

是否有任何解决方案,但更改会话超时间隔?

解决方法

当服务器端会话超时时会触发Session_End事件,这是(默认)在最后一个请求被提供后20分钟.服务器不知道用户何时“导航”或“关闭浏览器”,因此无法对此进行操作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读