ASP.NET 将响应保存到 global.asax 中的文件
Posted
技术标签:
【中文标题】ASP.NET 将响应保存到 global.asax 中的文件【英文标题】:ASP.NET save respose to file in global.asax 【发布时间】:2013-03-01 10:29:37 【问题描述】:我在生产系统中有一个问题错误,我根本找不到。有时系统会产生无效链接。当最终用户单击它时,我会从系统收到错误报告,最终用户会收到错误消息。失败的 URL 是这样的:
http://www.mysite.com/somepath/undefined/
“未定义”部分是问题,我认为这是由 javascript 产生的,但我想确保它不是来自后端。
如果文件包含字符串“/undefined/”,是否可以使用 global.asax 将每个响应保存到文件中?
我试过这个:
protected void Application_EndRequest(object sender, EventArgs e)
TextReader t = new StreamReader(Response.OutputStream);
string content = t.ReadToEnd();
// look for "/undefined/" and save to a temp file is the easy part after this
但是说OutputStream 是不可读的。
我不确定是哪个页面/ajax 请求产生了错误链接,所以我需要检查每个响应。
【问题讨论】:
【参考方案1】:您无法读取响应流,但可以将响应过滤器添加到输出流,并获取它的副本。
这方面有几篇相关文章:
Logging raw HTTP request/response in ASP.NET MVC & IIS7 在这里 所以 Capturing and Transforming ASP.NET Output with Response.Filter Rick Strahl。希望对您有所帮助。
【讨论】:
【参考方案2】:只需检查 IIS 日志文件。我用 url 跟踪所有请求
【讨论】:
感谢您的回复。但我不明白这会有什么帮助。 IIS 日志只告诉我请求了哪些 URL。不是产生错误 URL 的原因。以上是关于ASP.NET 将响应保存到 global.asax 中的文件的主要内容,如果未能解决你的问题,请参考以下文章