【问题标题】:Headers appear in browser but are missing in Response object标头出现在浏览器中,但在响应对象中缺失
【发布时间】:2023-04-10 21:09:01
【问题描述】:

我有一个在 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-版本:3.0

不用说,HttpContext.Response.Headers.AllKeys.LengthHttpContext.Response.Headers.Keys.Count 都返回 2。

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

我们将不胜感激。

【问题讨论】:

  • C#代码是在服务端还是在客户端?
  • 如果 C# 代码在服务器上,那么响应就是您返回的内容。由您来填写标题。如果您不这样做,它们将获得默认值/计算值。

标签: c# .net http-headers response


【解决方案1】:

这些标头是 IIS 7.5 上的 private

您可以通过执行以下步骤添加Response Header

  1. 打开您的IIS Manager,导航到您要管理的级别。

  2. Features View 中,双击“HTTP Respond Headers” 功能。

  3. 点击操作面板上的“添加...”

【讨论】:

  • 这就是我已经尝试过的,以便添加我之前提到的额外响应标头。该标头与其他标头一起出现在 Chrome 的网络页面中,但 HttpContext.Response.Headers 仅出现两个常见标头(ServerX-AspNetMvc-Version)。在 IIS 7.5 上将标头设为私有是什么意思?
  • 您无法获取私有标头,它们不可用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-26
  • 2020-02-04
  • 2019-04-26
  • 2014-08-24
  • 1970-01-01
  • 1970-01-01
  • 2019-06-03
相关资源
最近更新 更多