ASP.NET一个简单的在线人数统计办法

来源:互联网 发布:制作手绘图片软件 编辑:程序博客网 时间:2024/05/18 02:19
 
ASP.NET一个简单的在线人数统计办法
我们在做好并发布一个网站后,我们要统计一段时间内这个网站的在线人数从而可以直观的了解到网站的吸引力或者网站程序的效率。下面我就介绍一种最简单明了的在线人数统计办法。
首先,我们要了解ASP.NET的特点。这里我给大家先介绍一下Global.asax 文件(也称为 ASP.NET 应用程序文件)是一个可选的文件,该文件包含响应 ASP.NET 或 HTTP 模块所引发的应用程序级别和会话级别事件的代码。Global.asax 文件驻留在 ASP.NET 应用程序的根目录中。运行时,分析 Global.asax 并将其编译到一个动态生成的 .NET Framework 类,该类是从 HttpApplication 基类派生的。配置 ASP.NET,以便自动拒绝对 Global.asax 文件的任何直接的 URL 请求;外部用户不能下载或查看其中的代码。
Global.asax 文件是可选的。只在希望处理应用程序事件或会话事件时,才应创建它。
这里我先简单阐述一下这个在线为数统计的原理:我们是根据会话Session的打开与关闭来统计在线人数的。我们首先要设置一个Application变量,用来记录当前的在线人数,当网站开始服务的时候我们将这个Application变量初始化为0,当会话每开启一次的时候我们将这个Application变量让它自动加1,当一个会话结束时再自动让这个Application变量减1,这样就实现了在线人数的统计功能。如果我们想知道这个网站的当前在线人数,只要在每个页面将这个Application变量显示出来就行了。下面介绍一下具体的实现步骤:
1. 先向网站添加一个可选文件Global.asax。
方法:打开网站的“添加新项”对话框,从中模版中选择Global.asax文件添加即可。
    2.在打开的Global.asax文件中将如下代码对应埴入:
<%@ Application Language="C#" %>
 
<script runat="server">
 
   
    void Application_Start(object sender, EventArgs e)
    {
        // 在应用程序启动时运行的代码
        Application["onlinenum"] = 0;
    }
   
    void Application_End(object sender, EventArgs e)
    {
        // 在应用程序关闭时运行的代码
 
    }
       
    void Application_Error(object sender, EventArgs e)
    {
        // 在出现未处理的错误时运行的代码
 
    }
 
    void Session_Start(object sender, EventArgs e)
    {
        // 在新会话启动时运行的代码
        Application.Lock();
        Application[ "onlinenum"] = (int)Application[ "onlinenum"] + 1;
        Application.UnLock();
    }
 
    void Session_End(object sender, EventArgs e)
    {
        // 在会话结束时运行的代码。
        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
        // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
        // 或 SQLServer,则不会引发该事件。
        Application.Lock();
        Application[ "onlinenum"] = (int)Application[ "onlinenum"] 1;
        Application.UnLock();
    }
      
</script>
 
上面的代码很容易理解,当网站开始服务的时候(Application开始的时候),先声明一个Application变量:Application[ "onlinenum "]来记录当前的上线人数,程序初始化Application[ "onlinenum"]为0。然后,当用户进入网站(Session开始的时候)的时候,先锁定Application,再将Application[ "onlinenum "]加1。用户退出网站的时候,将Application[ "onlinenum "]减1。这样就实现了在线用户的统计。
3.完成上面的工作后,我们如果想在页面上显示当前的在线人数只要将此Application[ "onlinenum "]的值赋给一个比如Lable就可以将当前的在线人数显示出来。(如:Lable1.Text= Application[ "onlinenum "].ToString())
 
原创粉丝点击