HTTPFilter 的例子

using System;
using System.Web;
using System.Diagnostics;


namespace HDI
{
  public class HTTPFilter : IHttpModule
  {

    System.IO.StreamWriter fileWriter;
    HttpApplication applicationContext;
    EventHandler beginRequestEventHandler;
    String fileName;

    public void Init(HttpApplication context)
    {
      //Store file name for later use.
      fileName = context.Context.Request.PhysicalApplicationPath + "HTTPFilter.txt";

      //Open file and write information.
      fileWriter = new System.IO.StreamWriter(fileName, true);
      fileWriter.WriteLine(System.DateTime.Now.ToString("MM.dd.yyyy HH:mm:ss:ffffff"));
      fileWriter.WriteLine("Init");
      fileWriter.Flush();
      fileWriter.Close();

      context.Error += (new EventHandler(this.Application_err));

             


      //Store for access in other events.
      applicationContext = context;
      beginRequestEventHandler = new System.EventHandler(this.OnBeginRequest);
      applicationContext.BeginRequest += beginRequestEventHandler;
    }

    public void Dispose()
    {

      //Open file and write information.
      fileWriter = new System.IO.StreamWriter(fileName, true);
      fileWriter.WriteLine(System.DateTime.Now.ToString("MM.dd.yyyy HH:mm:ss:ffffff"));
      fileWriter.WriteLine("Dispose");
      fileWriter.Flush();
      fileWriter.Close();

      //Clean-up.
      applicationContext.BeginRequest -= beginRequestEventHandler;
      beginRequestEventHandler = null;
    }

      protected void OnBeginRequest(object sender, EventArgs e)
      {
          //Open file and write information.
          fileWriter = new System.IO.StreamWriter(fileName, true);
          fileWriter.WriteLine(System.DateTime.Now.ToString("MM.dd.yyyy HH:mm:ss:ffffff"));
          fileWriter.WriteLine("OnBeginRequest");
          fileWriter.WriteLine(applicationContext.Context.Request.UserAgent);
          fileWriter.WriteLine(applicationContext.Context.Request.UserHostAddress);
          fileWriter.WriteLine(applicationContext.Context.Request.Url.ToString());
          fileWriter.Flush();
          fileWriter.Close();
      }

      protected void Application_err(object sender, EventArgs e)
      {
          //Open file and write information.
          fileWriter = new System.IO.StreamWriter(fileName, true);
          fileWriter.WriteLine(System.DateTime.Now.ToString("MM.dd.yyyy HH:mm:ss:ffffff"));
          fileWriter.WriteLine( applicationContext.Context.Error.Message+applicationContext.Context.AllErrors.ToString());

//Context.Server.GetLastError()
          fileWriter.Flush();
          fileWriter.Close();
      }

  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值