Я использую очень простую директиву outputcache для приложения веб-форм ASP.NET 4.0 (IIS 7.5), которое кэширует страницы в течение 1 часа. Приложение не находится под давлением памяти, но срок действия страниц истекает раньше, чем через час. Я создал тестовую страницу, которая просто записывает DateTime.Now для подтверждения поведения.
Похоже, что до тех пор, пока я продолжаю обновлять страницу, она остается в кэше (в основном), но если я перестану запрашивать ее на несколько минут и верну изменения отметки даты и времени. Я видел несколько других людей, которые публиковали похожие вопросы, но ответов не было. Я предполагаю, что это связано с какими-то настройками конфигурации или оптимизации где-то, где IIS удаляет редко посещаемые страницы из кэша раньше, чем продолжительность, но я не могу найти ничего задокументированного.
<% @ Page Language = "C #" MasterPageFile = "Default.Master"
AutoEventWireup = "true" Title = "Test"%> <% @ OutputCache duration = "3600"
location = "Any" varByParam = "*"%>
<% = DateTime.Now%>