Статистика сервера ASP для HTML-страниц - PullRequest
2 голосов
/ 20 марта 2012

У меня веб-сайт с ASP.NET 4.0.

CMS-часть сайта состоит из простых страниц ".HTML", а не ".aspx".

Вопрос: кроме использования awStats, есть ли простой способ подсчитать, сколько раз каждая страница была «обработана»?

1 Ответ

5 голосов
/ 20 марта 2012

Создайте обработчик 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);
}

Просто позаботьтесь о кеше, установите для кеша значение no для этого изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...