windows - 如何防止 IIS 7.5 缓存符号链接(symbolic link)内容?

标签 windows iis caching iis-7.5 symlink

我已将 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>

有几个人提到这个问题:

有什么提示可以解决这个问题吗?

最佳答案

不久前,这个问题让我抓狂了一个月。您必须在注册表中禁用 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

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

相关文章:

c - 我如何知道我是否使用 Windows API 来使用 ARM?

asp.net - Windows Server 2012 中无法打开数据库错误

javascript - 当 AngularJS 缓存 HTTP 请求时,它缓存解析的 JSON 对象还是字符串响应本身

windows - xperf 调用堆栈跟踪,特定于 dll

java - 增加PermGen空间(Tomcat7、Windows Service)

c# - 如何使用原始文件名作为有效的 Url 发布存储在 SQL 中的文档?

asp.net-mvc - 减少对缓存资源的 HTTP 请求数

symfony - Doctrine 二级缓存 w/Redis

c++ - 如何使用缓存技术提高性能

windows - PHP 5.6 和 Plesk 中的 .htaccess