2012-03-20 48 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