这个是global.asax中的代码,可以实现在线人数的统计,但一般说来,这些统计都不是很精确的,因为session 有个过期时间,系统默认是20分钟,也可以自定义,所以实际统计与理想是有差别的,只能将就着用吧
void Application_Start(object sender, EventArgs e)
{
Application.Lock();
Application["userNum"] = 0;
Application.UnLock();
}
void Application_End(object sender, EventArgs e)
{
// 在应用程序关闭时运行的代码
}
void Application_Error(object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码
}
//一个用户一个session,每个session都是一个集合,这些集合是以索引加键值的形式存在的
void Session_Start(object sender, EventArgs e) {
Application.Lock();
Application["userNum"] = int.Parse(Application["userNum"].ToString()) + 1;
Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
Application.Lock();
Application["userNum"] = int.Parse(Application["userNum"].ToString()) - 1;
Application.UnLock();
}
另外也可以用cookies作统计.
还可以统计用记录ip的方式,不但防刷新,而且还可以统计访问ip数.