关于在线人数统计的问题
今天想用Application做一下在线人数统计,方法从网上看的,基本上都一样,就是在Global.asax文件中添加代码如下:
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
Application["user_sessions "] = 0;
}
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码
Application.Lock();
Application["user_sessions "] = (int)Application["user_sessions "] + 1;
Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
// 或 SQLServer,则不会引发该事件。
Application.Lock();
Application["user_sessions "] = (int)Application["user_sessions "] - 1;
Application.UnLock();
}
但是问题来了,就是测试的时候,发现只会统计访问过的人数,当有人关闭浏览器没访问时,人数不会减少,请问下,是什么原因,谢谢!!!!