如何实现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. jj前端项目1th总结

    1:设计图--->分出几个独立模块--->颗粒化布局--->文档流控制整体布局--->固定位置的元素绝对定位,段落这种元素不可绝对定位.----->加上和后台交互用的js ...

  2. Python学习(5)条件语句

    目录 Python 条件语句 Python 简单的语句组 Python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了 ...

  3. Oracle正则表达式函数:regexp_like、regexp_substr、regexp_instr、regexp_replace

    Oracle正则表达式函数:regexp_like.regexp_substr.regexp_instr.regexp_replace   --去掉所有特殊字符,只剩字母  SELECT REGEXP ...

  4. (三)uboot源码分析

    一.九鼎官方uboot和三星原版uboot对比(1)以九鼎官方的uboot为蓝本来学习的,以三星官方的这份为对照.(2)不同版本的uboot或者同一版本不同人移植的uboot,可能目录结构和文件内容都 ...

  5. (五)Super VLAN

  6. C++—复合类型

    内容概要: -创建和使用数组 -创建和使用C-风格字符串 -创建和使用string类字符串 -使用方法getline()和get()读取字符串 -混合输入字符串和数字 -创建和使用结构 -创建和使用共 ...

  7. hdu 5713(状态压缩DP)

    要进行两次dp, 第一个,dp[i],1<=i<=(1<<n) 其中用i的二进制形式表示已选择的点. dp[i] 用来保存i中的点构成一个连通块,边集多少种可能. 转移方程: ...

  8. OpenGL的几何变换[转]

    OpenGL的几何变换 1.实验目的: 理解掌握一个OpenGL程序平移.旋转.缩放变换的方法. 2.实验内容: (1)阅读实验原理,运行示范实验代码,掌握OpenGL程序平移.旋转.缩放变换的方法: ...

  9. http协议简述

    HTTP协议 客户端连上web 服务器后,若想获得 web 服务器中的某个 web 资源,需遵守一定的通讯格式, HTTP 协议用于定义客户端与 web 服务器通迅的格式. WEB浏览器与 WEB 服 ...

  10. 安卓虚拟机启动失败intel haxm未安装

    1:环境是android studio 在AVD中启动显示,提示当前电脑为安装HAXM emulator: ERROR: x86 emulation currently requires hardwa ...