zliyt 发表于 2015-8-14 07:56:41

在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就行了。
页: [1]
查看完整版本: 在IIS 7中可以轻松实现文件下载次数统计