3

我正在使用 VSTS 2008 + C# + .Net 3.5 来开发 ASP.Net。我想为特定的 aspx 文件转储返回给客户端的所有响应标头。任何想法如何轻松做到这一点?

我知道如何使用 Response.Headers 集合,但我的困惑是在哪里枚举以获得准确的响应标头?例如,如果我在Page_Load中枚举,并不是所有的响应头都可以枚举,但是如果我在Response.Close之后枚举,就会抛出异常。

有什么建议吗?

EDIT1:在 VSTS 2008 调试模式下使用 OnPreRender 时遇到以下异常(即按 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]);
                }
            }

        }

提前谢谢,乔治

4

2 回答 2

3

OnPreRender 呢?那是在页面被渲染之前,并且在所有的回发处理已经发生之后。到那时一切都应该到位。

马克

于 2009-07-26T08:08:35.613 回答
0

[对于最初的问题,这可能已经过时了,但是为了可能登陆这里的新手的利益,添加了这个答案]

更改 Web 项目的属性以使用本地 IIS 进行调试,如下所示:

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

可以在此处找到有关设置的详细教程

现在,当您按下 F5 时,将使用本地 IIS 进行调试,并且您不会得到平台不支持的异常/抱怨所需的集成管道模式。

于 2013-01-10T05:03:58.013 回答