【问题标题】:ASP.NET Cache-Control changes on server服务器上的 ASP.NET Cache-Control 更改
【发布时间】:2011-06-23 17:13:39
【问题描述】:

我有设置响应的缓存控制标头的 ASP.NET MVC 操作过滤器。一切正常,除非我将其发布到 Web 服务器。

当我通过 localhost 运行它时,我得到以下信息:

Cache-Control:public, max-age=172800
Connection:Close
Content-Length:15057
Content-Type:application/pdf
Date:Thu, 23 Jun 2011 17:09:09 GMT
Server:ASP.NET Development Server/9.0.0.0
X-AspNet-Version:2.0.50727
X-AspNetMvc-Version:2.0

在现场运行时

Cache-Control:public
Content-Length:15057
Content-Type:application/pdf
Date:Thu, 23 Jun 2011 17:09:45 GMT
Server:Microsoft-IIS/6.0
X-AspNet-Version:2.0.50727
X-AspNetMvc-Version:2.0
X-Powered-By:ASP.NET

所以由于某种原因max-age 被清除了,我无法弄清楚。

我能想到的唯一区别是开发站点通过 Cassini Web 服务器,而现场是 IIS,所以也许 IIS 正在清除 max-age?

我必须做些什么才能将 max-age 值保留在缓存控制标头中?

编辑: 这是 web.config 中 system.webserver 节点的图片,以防有什么可以查看的。

【问题讨论】:

  • 您是否检查了 IIS 中的 Http Headers 选项卡?
  • @Jay 我刚刚在 HTTP 标头选项卡中将其修改为在两天后过期,但响应标头仍然没有变化。可能是我的 web.config 吗?也许一些 HttpModule 弄乱了标头?
  • 我对此表示怀疑。不能 100% 做到这一点,但 IIS 是最后一个在响应发出时触及响应的。从那时起,外部服务器/网络节点可能正在使用标头?

标签: asp.net asp.net-mvc iis-6 cache-control


【解决方案1】:

查找并检查配置文件中的 行。如果还没有,请尝试将 cacheControlMode 设置为 UseMaxAge。

例如:

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-04-08
  • 1970-01-01
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
  • 1970-01-01
  • 2015-05-18
  • 1970-01-01
相关资源
最近更新 更多