我在一个按文件扩展名的目录中有一个缓存规则,并且该目录中有 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。