我通过文件扩展名在目录中有一个缓存规则,该目录中有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。仍然没有缓存。正如我所说,同一个dir中的另一个文件缓存很好,但另一个没有。不知道它可能是什么,服务器上几乎没有使用任何内存,所以我认为这不是一个无法获得的内存空间问题。
另外,我已经知道在页面中发送cookie会导致IIS不能缓存页面,但是这两个页面都没有发送cookie。
答案 0 :(得分:0)
从页面中删除Response.Flush
为将来其他任何人做了诀窍。