当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 教你如何实现ASP.NET中网站访问量的统计

ASP.NET
ASP.NET开发:简化应用程序的开发支持Web标准
asp.net XMLHttpRequest实现用户注册前的验证
asp.net 页面间传值方法小结
asp.net url重写浅谈
asp.net 验证码生成和刷新及验证
C#精髓 GridView72大绝技 学习gridview的朋友必看
实例说明asp.net中的简单角色权限控制
asp.net网站开发包wq.dll打包下载
js与ASP.NET 中文乱码问题
asp.net checkbox 动态绑定id GridView删除提示
asp.net TextBox回车触发事件 图片在img显示
asp.net 脏字典过滤问题 用正则表达式来过滤脏数据
asp.NET 脏字过滤算法
asp.NET 脏字过滤算法 修改版
asp.net sql 数据库处理函数命令
asp.net Javascript 的几种写法与提示
ASP.NET MVC学习笔记
asp.net 中国身份证号码验证代码 非正则
Asp.net中使用Sqlite数据库的方法
asp.net 中文字符串提交乱码的解决方法

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-23   浏览: 203 ::
收藏到网摘: n/a

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

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

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

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

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


void Session_Start(object sender, EventArgs e) {

//获取访问者的IP

string ipAddress = Request.ServerVariables["REMOTE_ADDR"];

//获取访问者的来源

string ipSrc;

//判断是否从搜索引擎导航过来的

if (Request.UrlReferrer == null) {

ipSrc = "";

}

else {

//获取来源地址

ipSrc = Request.UrlReferrer.ToString();

}

//获取访问时间

DateTime ipDatetime = DateTime.Now;

//保存IP信息到数据库中

IPControl cont = new IPControl();

cont.AddIP(ipAddress, ipSrc, ipDatetime);

//获取用户访问的页面

string pageurl = Request.Url.ToString();

//判断访问的是否是默认页

if (pageurl.EndsWith("IPStat.ASPx")) {

//锁定变量

Application.Lock();

//为页面访问量+1

Application["StatCount"] = int.Parse(Application["StatCount"].ToString()) + 1;

//解锁

Application.UnLock();

}

//锁定变量

Session.Timeout = 10;

//设定超时为10分钟

Application.Lock();

Application["countSession"] = Convert.ToInt32(Application["countSession"]) + 1;

//访问总人数+1

Application["onlineWhx"] = (int)Application["onlineWhx"] + 1;

//在线人数加+1

Session["login_name"] = null;

//解锁

Application.UnLock();

}


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


void Session_End(object sender, EventArgs e) {

// 在会话结束时运行的代码。

// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 InProc 时,

才会引发 Session_End 事件。

如果会话模式设置为 StateServer

// 或 SQLServer,则不会引发该事件。

//锁定变量

Application.Lock();

Application["onlineWhx"] = (int)Application["onlineWhx"] - 1;

//在线人数减-1

Session["login_name"] = null;

//解锁

Application.UnLock();

}

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


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


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


//保存IP信息到数据库中

IPControl cont = new IPControl();

cont.AddIP(ipAddress, ipSrc, ipDatetime);

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

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