0

我在一个按文件扩展名的目录中有一个缓存规则,并且该目录中有 2 个动态页面。

    <configuration>
        <system.webServer>
            <caching>
                <profiles>
                    <add extension=".asp" 
                         policy="CacheForTimePeriod" 
                         kernelCachePolicy="DontCache" 
                         duration="03:00:00" 
                         location="Any" 
                         varyByQueryString="*" />
                </profiles>
            </caching>
        </system.webServer>
    </configuration>

两者之间确实没有显着差异,它们都运行查询字符串,但是,由于某种原因,IIS 不想缓存其中一个,我不知道为什么。它完美缓存的页面之一,但另一个它没有。我在想这可能是由于输出文件大小,因为被缓存的页面总是在 256kb 以下,而另一个通常超过了,并且 256kb 是MaxCachedFileSize. 所以我根据ms的建议添加了以下注册表:

HKLM\System\CurrentControlSet\Services\InetInfo\Parameters\MaxCachedFileSize

我将其设置为 10485760 字节(10mb),因为默认为 256kb。仍然没有缓存。正如我所说,同一个目录中的另一个文件缓存很好,但另一个没有。不确定它可能是什么,服务器上几乎没有使用任何内存,所以我不认为这可能是内存空间不可用的问题。

另外,我读到在页面中发送 cookie 会导致 IIS 不缓存页面,但两个页面都没有发送 cookie。

4

1 回答 1

0

从页面中删除Response.Flush对未来的其他人来说都是诀窍。

于 2014-04-29T22:22:36.933 回答