IIS 7.5上符号链接的缓存问题

TN.*_*TN. 17 windows iis symlink caching iis-7.5

我已经设置IIS(7.5)静态服务一些文件,其中一些文件实际上是符号链接(由mklink创建).

即使我禁用了内核和用户缓存,这些文件似乎也被IIS以某种方式缓存.在修改文件后,IIS仍在提供旧版本.

(为了确保它不是由ASP.NET引起的,我创建了一个专用的非托管AppPool.)

(我已经检查过浏览器没有缓存这些文件.)

我的web.config如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <directoryBrowse enabled="true" />
        <caching enabled="false" enableKernelCache="false" />
        <urlCompression doStaticCompression="false" doDynamicCompression="false" />
        <staticContent>
            <clientCache cacheControlMode="DisableCache" />
        </staticContent>
    </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

有几个人提到这个问题:

任何提示如何解决这个问题?

小智 22

这个问题让我坚持了一个月前的一段时间.您必须在注册表中禁用IIS缓存,据我所知,IIS 7的任何地方都没有记录,但是仍然可以使用旧的IIS 5技巧.您可以将以下内容转换为.reg文件并导入它,也可以导航到该部分并手动添加.我建议在更改此参数后重新启动,我不确定IIS是否仅在iisreset之后选择它.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters]
"DisableMemoryCache"=dword:1
Run Code Online (Sandbox Code Playgroud)

  • 有人在IIS8.5上尝试过这个吗?我有任何非静态文件(web.config,.aspx等等)的缓存问题.为了显示更改,我必须重新启动完整的应用程序池. (2认同)
  • 这解决了我在IIS7上的问题.我已经使用IIS 10迁移到Windows 10,应用了修复程序,但我在静态资源上再次获得陈旧缓存:( (2认同)