C# 标题出现在浏览器中,但在响应对象中丢失

C# 标题出现在浏览器中,但在响应对象中丢失,c#,.net,http-headers,response,C#,.net,Http Headers,Response,我有一个在IIS 7.5上运行的.NET应用程序,返回了以下响应头,如Chrome的网络页面所示: HTTP/1.1 200 OK Cache-Control: private Content-Type: text/html; charset=utf-8 Content-Encoding: gzip Vary: Accept-Encoding Server: Microsoft-IIS/7.5 X-AspNetMvc-Version: 3.0 X-AspNet-Version: 4.0.3031

我有一个在IIS 7.5上运行的.NET应用程序,返回了以下响应头,如Chrome的网络页面所示:

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 21 Sep 2012 16:11:55 GMT
Content-Length: 840
在C#代码中,我尝试读取那些响应头,但是
HttpContext.response.headers
检索到的响应头只有以下两个:

  • 服务器:Microsoft IIS/7.5
  • X-AspNetMvc-Version:3.0
不用说,
HttpContext.Response.Headers.AllKeys.Length和
HttpContext.Response.Headers.Keys.Count都返回2

因为在生产环境中,应用程序必须读取一个额外的响应头,一个动态响应头,所以我需要能够截获所有这些响应头


非常感谢您提供解决方案。

这些标题在IIS 7.5上是私有的

您可以通过执行以下步骤来添加
响应标题

  • 打开您的
    IIS管理器
    ,导航到要管理的级别

  • 功能视图中
    ,双击
    “HTTP响应头”
    功能

  • 单击“操作”面板上的“添加…”


  • 这些标题在IIS 7.5上是
    private

    您可以通过执行以下步骤来添加
    响应标题

  • 打开您的
    IIS管理器
    ,导航到要管理的级别

  • 功能视图中
    ,双击
    “HTTP响应头”
    功能

  • 单击“操作”面板上的“添加…”


  • C代码在服务器上还是在客户端上?如果C代码在服务器上,则响应就是您返回的。由您填写标题。如果没有,他们将获得默认值/计算值。C代码是在服务器上还是在客户端上?如果C代码在服务器上,则响应是您返回的。由您填写标题。如果您不这样做,它们将获得默认值/计算值。这是我已经尝试过的,以便添加我前面提到的额外响应头。该标题与其他标题一起出现在Chrome的网络页面中,但
    HttpContext.Response.headers
    仅与两个常用标题一起出现(
    Server
    X-AspNetMvc-Version
    )。IIS 7.5上的头是私有的,这是什么意思?您无法获取私有头,它们不可用。这是我为了添加我前面提到的额外响应头而尝试的。该标题与其他标题一起出现在Chrome的网络页面中,但
    HttpContext.Response.headers
    仅与两个常用标题一起出现(
    Server
    X-AspNetMvc-Version
    )。IIS 7.5上的头是私有的是什么意思?您无法获取私有头,它们不可用