.net 如何以浏览器获胜的方式启用IIS缓存';我甚至不检查资源是否已更改?

.net 如何以浏览器获胜的方式启用IIS缓存';我甚至不检查资源是否已更改?,.net,asp.net,iis-7,caching,.net,Asp.net,Iis 7,Caching,我们在ASP.NET应用程序中启用了静态资源缓存,如下所示: <system.webServer> <staticContent> <clientCache cacheControlMode="UseExpires" httpExpires="Thu, 29 Oct 2020 00:00:00 GMT" /> </staticContent> </system.webServer> 使用嗅探器,我们

我们在ASP.NET应用程序中启用了静态资源缓存,如下所示:

<system.webServer>
    <staticContent>
      <clientCache cacheControlMode="UseExpires" httpExpires="Thu, 29 Oct 2020 00:00:00 GMT" />
    </staticContent>
  </system.webServer>

使用嗅探器,我们可以确认
Expires
标记实际上被放置在响应的头上

但是,浏览器坚持要求服务器检查资源是否已更改。服务器返回未修改的代码(304)。这确实是一个非常轻量级的请求,但我们非常关注性能,因此希望保存这些请求

我如何告诉brosers他们甚至不应该请求服务器?


备注:ETag正在正确地发送到客户端。我认为,如果我删除了它们,浏览器可能会以某种方式停止对服务器的请求,但我无法删除IIS 7上的这些标记。我不知道它是否会有帮助。

有些东西不符合要求,您描述的内容应该足以消除if-Modified-Since/304行为。您是否可以包含所有响应标题,以便我们可以更仔细地查看

另外,请注意,点击“刷新””会导致您所描述的结果—您应该测试的是指向相关页面的实际链接

仅供参考,我不久前发布了一个类似的问题(1),只是我看到了相反的情况:浏览器优化了正常的If None Match/304交互(在同一会话中)

(一)

谢谢你,纳里曼。在发布响应标题之前,我将测试您描述的“页面链接”。我正在按F5。我不知道我以前怎么没有想到,这是有道理的。我会测试一下,然后回来找你。