[ASP.NET2.0]Global.asax实现在线人数统计和站点访问总量

原创 2007年09月27日 10:34:00
 




~/App_Data/Visitors.xml  文件

<?xml version="1.0" encoding="gb2312"?>
<Count>
  
<TotalVisitors>0</TotalVisitors>
</Count>

Global.asax 文件
<%@ Application Language="C#" %>
<%@ Import Namespace="System.Xml" %>

<script runat="server">

    
/**//// <summary>
    
/// Application["Visitors"]        当前在线人数
    
/// Session["TotalVisitors"]    站点访问总量
    
/// </summary>


    
void Application_Start(object sender, EventArgs e) 
    
...{
        
// 在应用程序启动时运行的代码
        Application["Visitors"= 0;    //在线访客人数统计

    }

    
    
void Application_End(object sender, EventArgs e) 
    
...{
        
//  在应用程序关闭时运行的代码

    }

        
    
void Application_Error(object sender, EventArgs e) 
    
...
        
// 在出现未处理的错误时运行的代码

    }


    
void Session_Start(object sender, EventArgs e) 
    
...{
        
// 在新会话启动时运行的代码
        Application.Lock();

        
if (this.Session.IsNewSession == true)
        
...{
            Application[
"Visitors"= (int)Application["Visitors"+ 1;    //增加在线人数

            XmlDocument xmldoc 
= new XmlDocument();
            
            xmldoc.Load(Server.MapPath(
"~/App_Data/Visitors.xml"));
            
            XmlNode VisitorsNode 
= xmldoc.DocumentElement.ChildNodes[0].ChildNodes[0];
            
            Session[
"TotalVisitors"= Convert.ToInt32(VisitorsNode.Value) + 1;    //站点访问总数
                
            VisitorsNode.InnerText 
= this.Session["TotalVisitors"].ToString();
            
            xmldoc.Save(Server.MapPath(
"~/App_Data/Visitors.xml"));

        }


        Application.UnLock();

    }


    
void Session_End(object sender, EventArgs e) 
    
...{
        
// 在会话结束时运行的代码。 
        
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
        
// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer 
        
// 或 SQLServer,则不会引发该事件。
        
        Application.Lock();
        Application[
"Visitors"= (int)Application["Visitors"- 1;
        Application.UnLock();

    }

       
</script>

在线人数统计和总访问量统计

1.新建网站,添加几个窗体。webForm1.aspx ,ViewStateForm.aspx 2.在网站的根目录下添加全局应用程序类“Global.aspx” 。(重要) 3.在“Global....
  • hjingtao
  • hjingtao
  • 2012年06月12日 17:08
  • 3841

javaWeb 在线人数统计

1.新建一个工程OnlineCount,包结构如下图所示: demo1:新建一个OnlineCounter.java 代码如下:   package com.dr.demo2.serv...
  • zhangxiong0797
  • zhangxiong0797
  • 2014年03月07日 09:15
  • 1358

网站在线人数的精确统计的个人看法

我给一个比较有趣的做法,当然很耗费资源。那就是持续连接。。。。 你做一个包含页面,。让每个可访问的页面都用ajax/iframe调用这个。 这个页面的核心代码大致如下。     if (true) {...
  • java2000_net
  • java2000_net
  • 2008年02月10日 06:53
  • 2001

统计在线用户(在Global.asax中使用定时器来统计在线人数和每天每月的访问量 )

在Global.asax中使用定时器来统计在线人数和每天每月的访问量一、在 Application_Start 中创建定时器//以下为使用多个定时器System.Timers.Timer的处理方法//...
  • shatamadedongxi
  • shatamadedongxi
  • 2010年06月09日 13:29
  • 987

如何实现网站在线人数以及历史访问人数的统计

准备工作1、新建一个TongJi 的数据库,添加一个 tongji 的表,在表中有一个 Number 的字段,为 int 类型,Number初值为1000;2、新建一个网站;3、新建数据库连接字符串(...
  • hfzsjz
  • hfzsjz
  • 2007年05月24日 15:17
  • 923

网站在线人数以及历史访问人数的统计代码

  l来自http://hi.baidu.com/mydelicious/blog/item/22b10d38cb14ef25b8998fbb.html 准备工作1、新建一个TongJi 的数据库,添...
  • cqunknown
  • cqunknown
  • 2008年05月29日 21:48
  • 5685

实现统计在线用户的几种方式

一,每次用户操作更新其在线时间 这个方法很直接,在用户表里加一个字段update_time,每次用户进行操作,都更新这个字段为当前时间,一般是在一个被所有Action继承的基类里写这个操作。 然后...
  • sb___itfk
  • sb___itfk
  • 2014年09月02日 19:20
  • 3008

利用servlet的监听器实现在线人数监控的功能

1、分析: 做一个网站在线人数统计,可以通过ServletContextListener监听,当Web应用上下文启动时,在ServletContext中添加一个List.用来准备存放在线的用户名,然后...
  • oldinaction
  • oldinaction
  • 2015年09月07日 17:26
  • 1853

javaEE之--------统计网站在线人数,安全登录等(观察者设计模式)

总体介绍下:  监听器:监听器-就是一个实现待定接口的普通Java程序,此程序专门用于监听别一个类的方法调用。都是使用观察者设计模式。 小弟刚接触这个,做了些简单的介绍,大神请绕道,技术只是一...
  • yangxin_blog
  • yangxin_blog
  • 2016年01月02日 13:10
  • 3676

asp.net 使用Application和Session对象统计在线人数

asp.net 使用Application和Session对象统计在线人数   使用Application和Session对象,结合全局配置文件Global.asax和站点配置文件Web.confi...
  • alvinfqz
  • alvinfqz
  • 2016年06月03日 09:46
  • 1326
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[ASP.NET2.0]Global.asax实现在线人数统计和站点访问总量
举报原因:
原因补充:

(最多只允许输入30个字)