如何在asp.net中用c#做在线人数计数器

最好能有源代码,谢谢!!!!!!!!!!!还有就是有个问题啊,他提醒说有错误,说“System.Web.HttpApplicationState”并不包含“Unlock”... 最好能有源代码,谢谢!!!!!!!!!!!
还有就是有个问题啊,他提醒说有错误,说“System.Web.HttpApplicationState”并不包含“Unlock”的定义,这是怎么回事呢.谢谢各位解答了!
展开
 我来答
longfujin
2009-11-09 · TA获得超过528个赞
知道小有建树答主
回答量:1973
采纳率:0%
帮助的人:283万
展开全部
一、用户显示页面的使用

首先,我们来看看怎样现实当前网站的访问用户数量,程序代码如下:

<%@ Page Language="c#" debug="true" %><html><head><SCRIPT LANGUAGE="c#" RUNAT="server">private void Page_Load(object sender, System.EventArgs e){ Visitors.Text = "本站当前有: <b>" + Application["user_sessions"].ToString() + "" + "</b> 位访问者 !";}<title>在线用户</title></head><body><asp:label id="visitors" runat="server" /><br></body></html>
二、global.asax文件实现

global.asax文件的作用我们自不必说,现在,我们直接来看统计当前在线用户数量如何实现:

<script language="c#" runat="Server">protected void Application_Start(Object sender, EventArgs e){Application["user_sessions"] = 0;}protected void Session_Start(Object sender, EventArgs e){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();}</script>

以上代码很容易理解,当网站开始服务的时候(Application开始的时候),程序设置Application["user_sessions"]为零,然后,当用户进入网站(Session开始的时候)的时候,锁定Application,然后,将application("user_sessions")加一,用户退出网站的时候,application("user_sessions")减一。这样,就很巧妙的实现了在线用户的统计。
king39929109
2009-11-09 · 超过10用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:27.4万
展开全部
先添加一个“全局程序集文件_Global.asax”

void Application_Start(object sender, EventArgs e)
{

Application["count"] = 0;//初始化人数为0

}

void Session_Start(object sender, EventArgs e)
{

Session.Timeout = 1;//超时时间为1分钟
Application.Lock();
Application["count"] = (int)Application["count"] + 1;
Application.UnLock();

}

void Session_End(object sender, EventArgs e)
{

Application.Lock();
Application["count"] = (int)Application["count"] - 1;
Application.UnLock();

}

/// <summary>
/// 页面加载的代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label1.Text = Application["count"].ToString() + "人";

}
}

ok~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappe8t3L68TSCbzK
2009-11-09 · TA获得超过556个赞
知道小有建树答主
回答量:384
采纳率:0%
帮助的人:219万
展开全部
建议使用静态变量来存储人数,

Application集合是弱类型的,会有装箱/拆箱的损耗,主要为了兼容ASP程序的,不推荐使用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式