如何在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进行调试,如下所示:

  1. 浏览到项目属性(右键单击解决方案资源管理器中的项目节点 – >属性或选择项目节点,按ALT + ENTER)
  2. 选择“构建”选项卡
  3. 在服务器部分,选择单选按钮“使用本地IIS服务器”在本地IIS中设置虚拟目录,并在此处的设置中指向该URL

有关设置的详细教程可以在这里找到

现在当你点击F5时,本地IIS将​​用于调试,你不会得到平台不支持exception/抱怨所需的集成管道模式。