禁用IIS 7中的静态内容缓存


9

我是一名开发人员,在Windows Server 2008 R2的IIS 7中遇到了相对简单的问题。问题是IIS 7过度缓存服务器上的所有静态内容。它会缓存所有.html和.js内容,除非我进行iisreset,否则不会注意到内容在磁盘上何时更改。

我尝试了以下方法:

  1. 删除浏览器中的本地缓存(我99%的肯定是服务器缓存问题)
  2. 在OutputCaching的IIS Admin中,添加.html扩展名,然后取消选中“用户模式缓存”,然后取消选中“内核模式缓存”
  3. 在IIS Admin的OutputCaching中,添加.html扩展名并检查“用户模式缓存”,然后选择“防止所有缓存”单选
  4. 在IIS Admin中,编辑“输出缓存功能”设置,然后取消选中“启用缓存”和“在OutputCaching下启用内核缓存”。
  5. 运行“ C:\ Windows \ System32 \ inetsrv \ config \ appcmd设置配置” SharePoint-80“-部分:system.webServer / caching -enabled:false”
  6. 查看applicationHost.config并禁用与缓存有关的所有内容。

似乎没有任何作用。我感到非常沮丧。谁能帮忙吗?


2
您设法找到解决方案。我正面临着同样的问题。尝试了一切,我只是无法禁用缓存。唯一的方法是更改​​文件名,发出请求,然后再更改回。
Tivie

Answers:


4

我真的很想看到system.webServer/caching您的applicationhost.config和web.config中的部分。如果可以,请粘贴它们。通过运行上述appcmd命令,您刚刚禁用了用户模式缓存,但仍启用了内核缓存。另外,如果您确实想在网站或服务器级别禁用缓存,则只需更改以下内容:

<system.webServer>
    <caching enabled="false" enableKernelCache="false" />
</system.webServer>

您还可以使用Fiddler工具来验证内容是否真正被缓存,即是否返回了304。


0

在服务器上,如果您运行“ netsh http show cache”,是否看到任何缓存的条目?如果是这样,则您尚未成功禁用Web服务器上的输出缓存。


0

只需$ 0.02,即可检查您的处理程序是否符合您的期望。

静态文件通常由静态文件处理程序提供。如果您做了疯狂的事情,例如创建通配符脚本映射,或为所有文件类型和动词注册模块...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.