在任何情况下,如何阻止IIS缓存任何文件?

时间:2015-04-29 04:48:31

标签: caching iis-express

我做了一些网络开发工作,我的工作效率最大的打击来自IIS。它会缓存即使更改它们也不会更新的文件,除非我重新启动IIS。具体来说,我指的是html,js和css文件。这个问题迫使我不断地停止并启动我的Web应用程序。由于我有Windows 7,我相信我有ISS 7.5。我正在使用IIS Express。这是非常令人沮丧的,我总是喜欢IIS从不缓存任何东西。我很好用一种解决方案来阻止所有形式的缓存或仅仅是我正在进行的项目。

我无法使用IIS管理器。它不在系统和安全性中 - >管理工具 - >类似IIS管理器由https://technet.microsoft.com/en-us/library/cc770472%28v=ws.10%29.aspx建议。此外,在“开始搜索”框中搜索inetmgr会导致无效。因此,我正在寻找IIS applicationhost.config文件的修复程序。

我已经尝试将以下内容放在我的applicationhost.config中,但不起作用:

<location path="ProjectName">
    <system.webServer>
        <staticContent>
           <clientCache cacheControlCustom="public" cacheControlMode="DisableCache" />
        </staticContent>
       <caching enabled="false" enableKernelCache="false"></caching>
    </system.webServer>
</location>

StackOverflow对我的问题最近的问题是IIS cached files never replaced。但是,Fiddler告诉我,旧文件即使在更改后也会被发送到浏览器。

IIS如何在不重新启动的情况下向浏览器发送更新的文件?

3 个答案:

答案 0 :(得分:9)

我怀疑您已启用输出缓存,这会显示您正在描述的回收应用程序池或重新启动IIS清除它们的行为,并允许您查看新内容。

此页面提供了更多信息,http://www.iis.net/learn/manage/managing-performance-settings/walkthrough-iis-output-caching

如果您使用的是IIS Express,则可能是在web.config中的应用程序级别或单个页面上设置了缓存。

您需要设置

<caching>
   <outputCache enableOutputCache="false" />
</caching>

或者它的IIS 7+(将使用哪种IIS Express)

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

答案 1 :(得分:2)

如果有人偶然发现这一点,并希望在IIS 7中使用“鼠标点击”方式禁用缓存...这是https://forums.iis.net/t/959070.aspx上IIS论坛的答案:

  

这是IIS 7.5的更新(在Windows 7中)。禁用缓存是一个   当你不关心时,在开发过程中做的好事   性能并希望立即看到变化。它速度快   开发过程。    - 启动IIS管理器(在开始菜单中键入IIS到搜索程序和文件中)    - 导航到Connections树(默认网站)中的所需站点    - 打开输出缓存    - 编辑功能设置    - 取消选中启用缓存和启用内核缓存

你在web.config文件中得到的设置如下:

<caching enabled="false" enableKernelCache="false">
            <profiles>
                <add extension=".css" policy="DontCache" kernelCachePolicy="DontCache" />
                <add extension=".script" policy="DontCache" kernelCachePolicy="DontCache" />
            </profiles>
        </caching>

所以,这里没有标签..

答案 2 :(得分:-4)

很可能它是浏览器的罪魁祸首。 你试过 ctrl + F5 吗?