我已将IIS 7.5设置为静态提供一些文件,而其中一些文件实际上是符号链接(symbolic link)(由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>

有几个人提到这个问题:
  • http://forums.iis.net/t/1166077.aspx
  • http://forums.iis.net/t/1171204.aspx

  • 有什么提示如何解决这个问题?

    最佳答案

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

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters]
    "DisableMemoryCache"=dword:1
    

    关于windows - 如何防止IIS 7.5缓存符号链接(symbolic link)内容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6698481/

    10-12 02:13