如何实现ASP.NET中网站访问量的统计

2009-07-30 15:50 佚名 网翼教程网 字号:T | T

本文介绍了如何在asp.net中进行网站访问量的统计。

AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验

下面介绍如何进行ASP.NET中网站访问量的统计。

一、建立一个数据表IPStat用于存放用户信息

我在IPStat表中存放的用户信息只包括登录用户的IP(IP_Address),IP来源(IP_Src)和登录时间(IP_DateTime),些表的信息本人只保存一天的信息,如果要统计每个月的信息则要保存一个月。因为我不太懂对数据日志的操作,所以创建此表,所以说我笨吧,哈哈。

二、在Global.asax中获取用户信息

在Global.asax的Session_Start即新会话启用时获取有关的信息,同时在这里实现在线人数、访问总人数的增量统计,代码如下:

  1. void Session_Start(object sender, EventArgs e)
  2. {
  3. //获取访问者的IP
  4. string ipAddress = Request.ServerVariables["REMOTE_ADDR"];
  5. //获取访问者的来源
  6. string ipSrc;
  7. //判断是否从搜索引擎导航过来的
  8. if (Request.UrlReferrer == null)
  9. {
  10. ipSrc = "";
  11. }
  12. else
  13. {
  14. //获取来源地址
  15. ipSrc = Request.UrlReferrer.ToString();
  16. }
  17. //获取访问时间
  18. DateTime ipDatetime = DateTime.Now;
  19. //保存IP信息到数据库中
  20. IPControl cont = new IPControl();
  21. cont.AddIP(ipAddress, ipSrc, ipDatetime);
  22. //获取用户访问的页面
  23. string pageurl = Request.Url.ToString();
  24. //判断访问的是否是默认页
  25. if (pageurl.EndsWith("IPStat.ASPx"))
  26. {
  27. //锁定变量
  28. Application.Lock();
  29. //为页面访问量+1
  30. Application["StatCount"] = int.Parse(Application["StatCount"].ToString()) + 1;
  31. //解锁
  32. Application.UnLock();
  33. }
  34. //锁定变量
  35. Session.Timeout = 10; //设定超时为10分钟
  36. Application.Lock();
  37. Application["countSession"] = Convert.ToInt32(Application["countSession"]) + 1;//访问总人数+1
  38. Application["onlineWhx"] = (int)Application["onlineWhx"] + 1; //在线人数加+1
  39. Session["login_name"] = null;
  40. //解锁
  41. Application.UnLock();
  42. }

提醒一句,别忘了下面的代码,以实现在用户离线时,将在线人数减去1.

  1. void Session_End(object sender, EventArgs e)
  2. {
  3. // 在会话结束时运行的代码。
  4. // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 InProc 时,才会引发 Session_End 事件。
  5. 如果会话模式设置为 StateServer
  6. // 或 SQLServer,则不会引发该事件。
  7. //锁定变量
  8. Application.Lock();
  9. Application["onlineWhx"] = (int)Application["onlineWhx"] - 1; //在线人数减-1
  10. Session["login_name"] = null;
  11. //解锁
  12. Application.UnLock();
  13. }

三、将以上有关信息保存到数据库IPStat

ASP.NET中网站访问量统计的最后一个实现步骤,就是创建了一个获取IP数据信息的类IPControl(),用来实现对数据库IPStat数据的操作,关于IPControl()类的内容,因为它是C#中对数据库的操作,以解sql server 数据库,就能看懂它,这里就不作介绍了,请点击该链接查看。

为了实现将用户IP信息存入数据库,在上面代码中对IPControl()进行调用

  1. //保存IP信息到数据库中
  2. IPControl cont = new IPControl();
  3. cont.AddIP(ipAddress, ipSrc, ipDatetime);

参数ipAddress为用户IP,ipSrc为用户来源, ipDatetime为用户进入时间。

以上就实现了ASP.NET中网站访问量的统计。

如何实现ASP.NET中网站访问量的统计的更多相关文章

  1. ASP.net中网站访问量统计方法代码(在线人数,本月访问,本日访问,访问流量,累计访问)

    一.建立一个数据表IPStat用于存放用户信息 我在IPStat表中存放的用户信息只包括登录用户的IP(IP_Address),IP来源(IP_Src)和登录时间 (IP_DateTime),些表的信 ...

  2. ASP.net中网站访问量统计方法

    仅共学习 一.建立一个数据表IPStat用于存放用户信息 我在IPStat表中存放的用户信息只包括登录用户的IP(IP_Address),IP来源(IP_Src)和登录时间 (IP_DateTime) ...

  3. 关于linux asp.net MVC网站中 httpHandlers配置无效的处理方法

    近期有Jexus用户反映,在Linux ASP.NET MVC网站的Web.config中添加 httpHandlers 配置用于处理自定义类型,但是在运行中并没有产生预期的效果,服务器返回了404( ...

  4. ASP.NET Core 网站在Docker中运行

    Docker作为新一代的虚拟化方式,未来肯定会得到广泛的应用,传统虚拟机的部署方式要保证开发环境.测试环境.UAT环境.生产环境的依赖一致性,需要大量的运维人力,使用Docker我们可以实现一次部署, ...

  5. 【转载】ASP.NET中Server.MapPath方法获取网站根目录总结

    在ASP.NET网站应用程序中,可以通过Server.MapPath方法来获取跟服务器有关的目录信息,如获取网站的根目录.获取当前代码文件所在的目录路径.获取当前代码所在路径的上级路径等.Server ...

  6. 如何在 ASP.NET 应用程序中实现模拟用户身份(在ASP.NET中以管理员身份运行网站)

    前言 在实际的项目开发中,我们可能会需要调用一些非托管程序,而有些非托管程序需要有更高的身份权限才能正确执行.本文介绍了如何让IIS承载的ASP.NET网站以特定的账户执行,比如Administrat ...

  7. ASP.NET Web网站中App_Code文件夹的作用及使用场景

    原文地址:Web Site项目和ASP.NET Web Application中App_Code文件夹的作用作者:宾的宾 我现在要建一个ASP.NET的网站了,不难吧,开始动手.如下图: 这种方法建立 ...

  8. 以下是关于ASP.NET中保存各种信息的对象的比较,理解这些对象的原理,对制作完善的程序来说是相当有必要的(摘至互联网,并非原创--xukunping)

    在ASP.NET中,有很多种保存信息的对象.例如:APPlication,Session,Cookie,ViewState和Cache等,那么它们有什么区别呢?每一种对象应用的环境是什么?    为了 ...

  9. 秒懂ASP.NET中的内置对象

    上篇博客,小编主要简单的介绍了一下ASP.NET中的控件,这篇博客,小编主要简单总结一下ASP.NET中的内置对象,七个内置对象分别是:Request.Response.Application.Coo ...

随机推荐

  1. 16位的MD5加密和32位MD5加密的区别

    16位的MD5加密和32位MD5加密的区别 MD5加密后所得到的通常是32位的编码,而在不少地方会用到16位的编码它们有什么区别呢?16位加密就是从32位MD5散列中把中间16位提取出来!其实破解16 ...

  2. Mysql 系统参数 系统变量 状态变量

    1.系统参数,也就是命令行选项,执行命令的时候,后面跟的参数,系统参数很多,不可能每次执行程序的时候,指定这些参数.这些参数写在配置文件(Windows下是my.ini,Linux是my.cnf),执 ...

  3. JavaWeb学习总结(十二)--事务

    一.事务的介绍 1.1 什么是事务 银行转账!张三转10000块到李四的账户,这其实需要两条SQL语句: 给张三的账户减去10000元: 给李四的账户加上10000元. 如果在第一条SQL语句执行成功 ...

  4. (一)mtg3000常见操作

    一.查看MTG3000主控板IP地址: 重启设备后一直跑到shell,用户名和密码都输入admin,然后输入en进入命令行界面,输入sh int可查看设备IP等信息. 2.升级app.web程序

  5. @synchronized (object)使用详解

    synchronized关键字代表这个方法加锁,相当于不管哪一个线 程A每次运行到这个法时,都要检查有没有其它正在用这个方法的线程B(或者C D等),有的话要等正在使用这个方法的线程B(或者C D)运 ...

  6. golang 资源

    1.Learning Go <学习Go语言> http://www.miek.nl/projects/learninggo/中文版http://mikespook.com/learning ...

  7. 转!!java泛型概念(泛型类,接口,方法)

    一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(Stri ...

  8. Java JTable 表格 获取存储路径,文件名 ,导出excel表格

    在做计量泵上位机软件时,需要将下位机传上来的数据,存入MYSQL数据库,显示在java 上位机界面上,并能导出至电脑指定位置. 选择存储路径和文件名: // 处理另存文件的菜单 public void ...

  9. hiho_1062_最近公共祖先

    题目大意 给出一棵家谱树,树中的节点都有一个名字,保证每个名字都是唯一的,然后进行若干次查询,找出两个名字的最近公共祖先. 分析 数据量较小,对于每次查询都进行如下操作: 先找出person1到达根节 ...

  10. Implicit Object in JSP

    Implicit Object Description request The HttpServletRequest object associated with the request. respo ...