阻止IIS发送Cache-Control:Max-Age = 2592000

时间:2014-07-25 15:02:14

标签: asp.net caching iis iis-7.5

我遇到的问题是IIS发送.aspx页面的最大年龄,这导致我们的应用程序出现各种奇怪现象。最初的目标是为静态内容启用缓存,但我们注意到我们的ASPX页面也被缓存,这是我们不想要的。我启用了几个月的缓存,并且不记得我是如何设置它的。

以下是我尝试过的一些事情。

  • 我调整了相关网站的公共标题,并禁用了“过期网页内容”。
  • 我在httpCompression节点的applicationHost.config文件中找到了max-age设置。然而,删除它并没有阻止它被设置。
  • 我在同一个Web服务器上创建了一个带有示例页面的新网站,它还发送了max-age,所以感觉就像某个地方的全局设置。

我正在使用Chrome的开发工具和网络标签验证max-age和从缓存加载的页面。初始页面加载是一个全新的副本,如果我单击页面上的一个链接,将我带回同一页面,我已经在此加载来自Cache。

3 个答案:

答案 0 :(得分:0)

我找到了发送max-age值的罪魁祸首。它是在httpCompression节点的appplicationHost.config文件中设置的。我直接在配置文件中进行了更改,但由于它是一个锁定的文件,编辑将不适用。然后我通过在同一节点下的IIS管理器中编辑配置找到它。删除该值后,我重新启动了我的站点的应用程序池,并且不再发送max-age。

答案 1 :(得分:0)

这是微软的一个已知错误,请按照此处的讨论:
IIS7.5 max-age issue(asp.net mvc output cache)

并在github中:
https://github.com/Microsoft/dotnet/issues/330

答案 2 :(得分:-1)

出于某种原因删除applicationHost.config中的条目对我没有任何改动。我通过在web.config中添加以下内容解决了这个问题:

<staticContent>
  <clientCache cacheControlMode="NoControl" />
</staticContent>

因为我们正在添加这些标题,它似乎解决了这个问题。