我要创建一个网站,我需要统计在线用户并一直显示在主页上。我没有兴趣为其应用现成的模块。这是我已经做的:
将 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();
}
实际上它工作正常,但我发现了以下错误: --> 即使用户关闭浏览器,由于会话超时仍然存在,因此不会显示在线用户的真实数量!
除了更改会话超时间隔之外,有什么解决方案吗?