C# 如何在ASP.Net中转储响应头
我正在使用VSTS2008+C++.NET3.5开发ASP.Net。我想转储返回给客户端的特定aspx文件的所有响应头。有没有办法轻松做到这一点 我知道如何使用Response.Headers集合,但我的困惑是如何枚举以获得准确的响应头?例如,如果我在Page_Load中枚举,则不能枚举所有响应头,但如果我在response.Close之后枚举,则会引发异常 有什么建议吗 EDIT1:在VSTS 2008调试模式下使用OnPreRender时遇到以下异常(即按F5进行调试) {“此操作需要IIS集成管道模式。”} 提前感谢,,C# 如何在ASP.Net中转储响应头,c#,asp.net,.net,visual-studio-2008,httpresponse,C#,Asp.net,.net,Visual Studio 2008,Httpresponse,我正在使用VSTS2008+C++.NET3.5开发ASP.Net。我想转储返回给客户端的特定aspx文件的所有响应头。有没有办法轻松做到这一点 我知道如何使用Response.Headers集合,但我的困惑是如何枚举以获得准确的响应头?例如,如果我在Page_Load中枚举,则不能枚举所有响应头,但如果我在response.Close之后枚举,则会引发异常 有什么建议吗 EDIT1:在VSTS 2008调试模式下使用OnPreRender时遇到以下异常(即按F5进行调试) {“此操作需要IIS
乔治OnPreRender怎么样??这就在页面呈现之前,以及所有回发处理完成之后。到那时一切都应该准备就绪
Marc[对于最初的问题来说,这可能已经过时了,但是添加这个答案是为了让可能在这里登陆的新手受益] 更改web项目的属性以使用本地IIS进行调试,如下所示:
现在,当您点击F5时,本地IIS将用于调试,您将无法获得平台不受支持的异常/对所需的集成管道模式进行投诉。我遇到了不受支持的异常。我已经在我的原始问题“编辑1”部分发布了我的代码,有什么想法吗?错误消息是否意味着我必须部署到IIS中?我在IIS中尝试过同样的代码。请帮助确认。如果它是一个ASP.NET应用程序,如您所说,它托管在IIS中!它是在IIS7上托管的吗??在这种情况下,您需要确保您的虚拟目录使用“经典ASP.NET模式”(至少在我的经验中是这样)。我通常不会在IIS中托管它,我只需按F5调试它,稳定后,我将部署到IIS 7。如果按F5,应用程序应在VSTS2008内置的ASP.Net开发服务器(而不是IIS)中运行。您认为我的问题是由VSTS2008内置的ASP.Net开发服务器不支持OnPreRender方法引起的吗?还有其他意见吗?2.在哪里设置“经典ASP.NET模式”?在VSTS 2008或IIS 7?Hi Marc中,我找到了如何在IIS 7中设置经典模式或集成模式,但找不到如何在VSTS 2008内置ASP.Net开发服务器中设置,有什么想法吗?
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]);
}
}
}