访问统计是如何做的?

anantnt203120 2006-01-23 06:22:19
请问现在各种访问统计的方式:
1。下载一段代码到网页上,然后访问统计服务器,计数。
2。分析IIS日志
请问第二种方法,如何实现
我现在想到的是在统计的页面上放一个固定资源,每次访问都在IIS上留下日志,最后分析日志
但是,因为IE有缓存,如果固定资源是图片,短时间内访问是不再请求,直接从缓存里取,就不在IIS里留下日志,请问这种情况如何解决。
...全文
186 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
anantnt203120 2006-01-25
  • 打赏
  • 举报
回复
我就是需要不用缓存保留,访问一个图片资源。
anantnt203120 2006-01-25
  • 打赏
  • 举报
回复
另外,我就是需要不用缓存保留访问一个图片资源。
加入这个以后
htm网页
<metahttp-equiv="pragma"content="no-cache">
<metahttp-equiv="cache-control"content="no-cache,must-revalidate">
<metahttp-equiv="expires"content="wed,26feb199708:21:57gmt">
只是访问整个html页面的日志被记录了一条,我分析IIS日志的时候是根据正则表达式匹配的。
需要的是一条访问统计资源(就是一张固定图片)的日志。
Dleno 2006-01-24
  • 打赏
  • 举报
回复
那你写入文本文件就可以了!
我这里有一个访问统计!
也是其他大哥的!!
不知道对你有没有用!!
是在Global文件里的!

public class Global : System.Web.HttpApplication
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;

public Global()
{
InitializeComponent();
}

protected void Application_Start(Object sender, EventArgs e)
{
//Application["conn"]="Server=localhost;database=movie;uid=sa;pwd='zcc';";
Application["user_sessions"] = 0;
Application["counter_num"]=0;
uint count=0;
StreamReader srd;
//取得文件的实际路径
string file_path=Server.MapPath ("counter.txt");
//打开文件进行读取
srd=File.OpenText (file_path);
while(srd.Peek ()!=-1)
{
string str=srd.ReadLine ();
count=UInt32.Parse (str);
}
object obj=count;
Application["counter"]=obj;
srd.Close ();
}

protected void Session_Start(Object sender, EventArgs e)
{
Application.Lock();
Application["user_sessions"] = (int)Application["user_sessions"] + 1;
Application.UnLock();

Application.Lock ();
//数值累加,注意这里使用了装箱(boxing)
uint jishu=0;
jishu=(uint)Application["counter"];
jishu=jishu+1;
object obj=jishu;
Application["counter"]=obj;
//将数据记录写入文件
string file_path=Server.MapPath ("counter.txt");
StreamWriter fs=new StreamWriter(file_path,false);
fs.WriteLine (jishu);
fs.Close ();
Application.UnLock ();
}

protected void Application_BeginRequest(Object sender, EventArgs e)
{
// Application.Lock();
// Application["counter_num"]=(int)Application["counter_num"]+1;
// Application.UnLock();
}

protected void Application_EndRequest(Object sender, EventArgs e)
{

}

protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{

}

protected void Application_Error(Object sender, EventArgs e)
{

}

protected void Session_End(Object sender, EventArgs e)
{
Application.Lock();
Application["user_sessions"] = (int)Application["user_sessions"] - 1;
Application.UnLock();
}

protected void Application_End(Object sender, EventArgs e)
{
uint js=0;
js=(uint)Application["counter"];
//object obj=js;
//Application["counter"]=js;
//将数据记录写入文件
string file_path=Server.MapPath ("counter.txt");
StreamWriter fs=new StreamWriter(file_path,false);
fs.WriteLine(js);
fs.Close ();

}

要在你站点下新建一个文本文件
撒谎能够面代码的文件是counter.txt
Lisbi 2006-01-24
  • 打赏
  • 举报
回复
anantnt203120 2006-01-24
  • 打赏
  • 举报
回复
谢谢楼上的。还有怎么实现的?
falcon36017 2006-01-24
  • 打赏
  • 举报
回复
<%Response.Cache.SetNoStore();%>
falcon36017 2006-01-24
  • 打赏
  • 举报
回复

针对你问题看可以不可这么做

设该页面不允许缓存
//
还是做访问统计吧.
每个用户对页面的访问都insert一条记录 insert的内容一般无外乎
IP 访问页面 等信息

你统计足够以后不就可以实现并且开销不大的

anantnt203120 2006-01-24
  • 打赏
  • 举报
回复
由于访问量很大,所以不可能实事的在服务器端插入数据库,所以就定期分析一次IIS日志,请问还有好的办法。
anantnt203120 2006-01-24
  • 打赏
  • 举报
回复
多谢楼上的!
我是丁学 2006-01-23
  • 打赏
  • 举报
回复
做个访问统计,不是这个样子吧?
你都要统计什么东西?
没有见过统计IIS日志的

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧