ASP.NET捕获并替换Global.asax中的输出

时间:2009-05-04 08:51:28

标签: c# asp.net global-asax

我需要替换从我网站上的每个页面发送的一些数据,我认为使用Global.asax进行处理。这是我到目前为止尝试过的:

void Application_PreSendRequestContent(object sender, EventArgs e)
{
    System.IO.StreamReader sr = new System.IO.StreamReader(Response.OutputStream);
    String output = sr.ReadToEnd();

    Response.ClearContent();
    Response.Write("Testing..");
}

但是这给了我一个ArgumentException。我究竟做错了什么?有没有更好的方法呢?

由于

2 个答案:

答案 0 :(得分:8)

  

有没有更好的方法呢?

HttpModule可能是此类任务的最佳选择。

有关如何修改请求响应的示例,请查看以下文章:Producing XHTML-Compliant Pages With Response Filters

答案 1 :(得分:1)

帖子Logging raw HTTP request/response in ASP.NET MVC & IIS7非常精确地描述了如何获得响应的副本。