2012-03-20 40 views
2

我使用ASP.NET 4.0运行网站。html页面的ASP服务器统计信息

网站的CMS部分由纯“.HTML”页面构成,而不是“.aspx”。

问题:除了使用awStats之外,有没有一种简单的方法可以统计每个页面“服务”的次数?

+0

谷歌分析? – 2012-03-20 11:47:06

+0

我确定有人会抱怨,但我们已经使用LogParser很长一段时间来做这样的具体查询没有问题。它甚至可以通过一个小脚本或.NET应用程序自动执行。 – kpcrash 2012-03-20 11:52:50

回答

5

创建一个ashx处理函数,返回一个空的1x1像素图像,并从这些页面的底部调用它作为图像,并带有一些参数,如页面名称或此页面的标识。

在此处理程序中保存页面调用的统计信息。

你怎么称呼它就像一个图像的方式,例如

<img src="keepstats.ashx?mypageinfo.html" height="1" width="1" alt="" > 

,并把它的地方,不影响渲染页面,当浏览器渲染页面加载也是这个图片/处理器和你保存你的统计数据。我将高度和宽度设置为1x1,以避免浏览器不加载它。

为了使它更好,这里是处理程序的代码。

// 1x1 transparent GIF 
private readonly byte[] GifData = { 
    0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 
    0x01, 0x00, 0x01, 0x00, 0x80, 0xff, 
    0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 
    0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 
    0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 
    0x02, 0x44, 0x01, 0x00, 0x3b 
}; 

public void ProcessRequest (HttpContext context) 
{ 
    // save here your stat 

    // send the image 
    context.Response.ContentType = "image/gif"; 
    context.Response.Buffer = false; 
    context.Response.OutputStream.Write(GifData, 0, GifData.Length); 
} 

只要照顾缓存,请将此映像的缓存设置为无。

+3

整洁而简单!你已经度过了我的一天,谢谢。 – 2012-03-20 15:06:23