protected void Application_Start(Object sender, EventArgs e)
{
Application["user_sessions"] = 0;
}
protected void Session_Start(Object sender, EventArgs e)
{
//Session.Timeout=500;
Application.Lock();
Application["user_sessions"] = (int)Application["user_sessions"] + 1;
Application.UnLock();
}
protected void Session_End(Object sender, EventArgs e)
{
Application.Lock();
Application["user_sessions"] = (int)Application["user_sessions"] - 1;
Application.UnLock();
}
{
Application["user_sessions"] = 0;
}
protected void Session_Start(Object sender, EventArgs e)
{
//Session.Timeout=500;
Application.Lock();
Application["user_sessions"] = (int)Application["user_sessions"] + 1;
Application.UnLock();
}
protected void Session_End(Object sender, EventArgs e)
{
Application.Lock();
Application["user_sessions"] = (int)Application["user_sessions"] - 1;
Application.UnLock();
}
但愿雨水皆化酒,只恨今生已非人。
,不知道是什么原因??
,这是设置session的过期时间。所以asp.net中的这种统计方式是不准确的,至于好的办法,我暂时也没有想到,我做网站用的也是这样的方法。不过你可以把timeout的属性设置为短一下测试一下,如2分钟或者5分钟,我测试过,2分钟之后在线人数会减少,但是我不知道timeout时间设置少了之后,对整个程序会不会有什么影响,这个还有待测试,但是如果你的程序用的是session保存用户登陆后的标识的话,那这个时间是不能改的(反而应该设置长一些),因为减少之后这样用户登陆后的标识一会儿就过期了,对访问网站就会有问题。