输出缓存不缓存所有页面

时间:2014-04-29 20:04:32

标签: iis-7 iis-7.5 httpmodule outputcache output-caching

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

1 个答案:

答案 0 :(得分:0)

从页面中删除Response.Flush为将来其他任何人做了诀窍。