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。 我究竟做错了什么? 有没有更好的方法来做到这一点?
谢谢
I need to replace some data that's sent from every page on my site, and I think doing it with Global.asax. This is what I have tried with so far:
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..");
}
But this gives me an ArgumentException. What am I doing wrong? Is there any better way to do this?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于此类任务,HttpModule 可能是更好的选择。
有关如何修改请求响应的示例,请查看本文:使用响应过滤器生成符合 XHTML 的页面。
A HttpModule might be the better choice for such a task.
For an example on how to modify the response of a request, have a look at this article: Producing XHTML-Compliant Pages With Response Filters.
帖子 在 ASP.NET 中记录原始 HTTP 请求/响应MVC与 IIS7 非常清楚地描述了如何获取响应的副本。
The post Logging raw HTTP request/response in ASP.NET MVC & IIS7 descibes very nicely exactly how to get a copy of the response.