在IIS 7中可以轻松实现文件下载次数统计

在IIS 6中要实现文件下载统计,我知道的只有两个方法:

1、自己写ISAPI Filters。

2、通过通配符映射,将所有文件映射到ASP.NET运行时,然后在ASP.NET程序中统计下载次数,还要处理文件下载。

在IIS 7中,实现这个功能很轻松:

写一个HttpModule:

using System;

using System.Web;

namespace cnblogs

{

/// <summary>

/// Summary description for DownloadCountModule

/// </summary>

public class DownloadCounterModule : IHttpModule

{

public DownloadCounterModule()

{

}

#region IHttpModule Members

public void Dispose()

{

}

public void Init(HttpApplication context)

{

context.PreSendRequestContent += new EventHandler(context_PreRequestHandlerExecute);

}

void context_PreRequestHandlerExecute(object sender, EventArgs e)

{

HttpApplication app = (HttpApplication)sender;

HttpContext context = app.Context;

string url = context.Request.RawUrl;

//文件下载统计代码

}

#endregion

}

}

然后在IIS 7的Modules中增加(Add Managed Module)这个Module就行了。