OutputCache не кэшируется в течение всего времени - PullRequest
2 голосов
/ 24 июня 2010

Я сделал простой тестовый пример.

default.asp:

<%=now%>

web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<location path="default.asp">
    <system.webServer>
        <caching>
            <profiles>
                <add extension=".asp" policy="CacheForTimePeriod" kernelCachePolicy="DontCache" duration="01:00:00" varyByQueryString="*" />
            </profiles>
        </caching>
    </system.webServer>
</location>

Если я запрашиваю default.asp 2 раза, когда страница кэшируется, и значение datetime говорит то же самое в течение определенного периода времени, но не в течение всего часа.

Чтобы проверить это, откройте default.asp, запрашивая страницу до ее кэширования, затем подождите 5 минут и обновите страницу.

Я использую Windows 7 + IIS7.5

Ответы [ 2 ]

0 голосов
/ 25 июня 2010

Я выполнил отслеживание неудачного запроса и обнаружил следующее.

Если страница не часто попадает в кэш, она становится недействительной, даже если продолжительность не достигнута: http://img819.imageshack.us/img819/7963/45303467.png

0 голосов
/ 24 июня 2010

Можете ли вы уточнить, каков срок службы приложения в IIS. Может ли IIS отбирать приложение из-за неиспользования?
Один из способов проверить это - обновлять страницу каждые 20 секунд. Если кэшированная страница сохраняет исходное время дольше, чем те 5 минут, которые вы упомянули, это указывает на тот факт, что приложение отбраковывается. Когда вы снова запрашиваете это приложение, оно снова создает кешированную версию.

...