如何实现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. js一些问题总结

    1.undefined与null与NAN的区别 undefined表示未申明,null表示申明了没定义为空值,NAN表示不是数据类型.

  2. uploadify多图片上传实例

    upload.php <html> <head> <meta http-equiv="Content-Type" content="text ...

  3. bignum 大数模板

    今天无意间看到一个很好的大数模板,能算加.减.乘.除等基本运算,但操作减法的时候只能大数减小数,也不支持负数,如果是两个负数的话去掉符号相加之后再取反就可以了,一正一负比较绝对值大小,然后相减.我借用 ...

  4. eclipse右击打war包class没打上去的问题

    今天,遇到个诡异的问题,一个工程eclipse打war包class就是打不上,别的能打上,发现这样选择tomcat,打包成功,谨此备注.

  5. Spring MVC 之拦截器(八)

     在springMVC中实现拦截器有两种方式 1.实现HandlerInterceptor接口 2.继承HandlerInterceptorAdaptor类 编写拦截器: package com.cy ...

  6. icp算法的一些参考资料

    1.综述:迭代最近点算法综述,介绍了svd分解和四元数法,其中 svd法:http://blog.csdn.net/kfqcome/article/details/9358853 四元数法:http: ...

  7. VC++NMAKE

    目录 第1章 NMAKE    1 1.1 运行NMAKE    1 1.1.1 NMAKE的实质    2 1.2 描述块    3 1.2.1 定义    3 1.2.2 多个描述块    3 1 ...

  8. MySQL5.7 JSON实现简介

    版权声明:本文由吴双桥原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/205 来源:腾云阁 https://www.qclo ...

  9. crontab在一秒内刷新多次导致部分脚本不生效的问题分析

    版权声明:本文由康中良原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/182 来源:腾云阁 https://www.qclo ...

  10. java static 关键字

    static 修饰成员函数:(静态函数) 1)静态函数可以用类名和对象进行调用. 2)直接访问静态成员,但不能访问非静态成员变量. 3)非静态函数可以直接访问静态与非静态的成员.(非静态函数只能由对象 ...