如何在ASP.Net中转储响应头
我正在使用VSTS 2008 + C#+ .Net 3.5来开发ASP.Net。 我想转储返回给客户端的特定aspx文件的所有响应头。 任何想法如何轻松地做到这一点?
我知道如何使用Response.Headers集合,但我的困惑是在哪里枚举以获得准确的响应标头? 例如,如果我在Page_Load中枚举,则不能枚举所有响应头,但如果我在Response.Close之后枚举,则将抛出exception。
任何建议?
EDIT1:在VSTS 2008调试模式下使用OnPreRender时遇到以下exception(即按F5进行调试)
{“此操作需要IIS集成管道模式。”}
protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); using (StreamWriter writer = new StreamWriter("dump123.txt", true)) { writer.WriteLine(DateTime.UtcNow + " Response headers"); foreach (string item in HttpContext.Current.Response.Headers.Keys) { writer.WriteLine(item + " : " + HttpContext.Current.Response.Headers[item]); } } }
乔治,提前谢谢
OnPreRender怎么样? 这就是在页面被渲染之前,并且在所有hte回发处理发生之后。 到那时,一切都应该到位。
渣
[对于原始问题,这可能已经过时了,但为了可能降落在这里的新人的利益添加这个答案]
更改Web项目的属性以使用本地IIS进行调试,如下所示:
- 浏览到项目属性(右键单击解决方案资源管理器中的项目节点 – >属性或选择项目节点,按ALT + ENTER)
- 选择“构建”选项卡
- 在服务器部分,选择单选按钮“使用本地IIS服务器”在本地IIS中设置虚拟目录,并在此处的设置中指向该URL
有关设置的详细教程可以在这里找到
现在当你点击F5时,本地IIS将用于调试,你不会得到平台不支持exception/抱怨所需的集成管道模式。