Я настроил несколько страниц с профилями OutputCache и подтвердил, что они кэшируются с помощью нескольких браузеров и запросов на получение страницы с отметкой времени, которая соответствует всем запросам. Когда я пытаюсь перечислить HttpContect.Cache, он всегда пуст.
Есть идеи, что здесь происходит или куда мне вместо этого обращаться за этой информацией?
Обновление:
Это не кеш клиента, потому что несколько браузеров видят один и тот же ответ. Вот немного кода, чтобы объяснить, что происходит.
Настройки кэширования Web.Config
<system.web>
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<clear/>
<add name="StaticContent" duration="1200" varyByParam="none"/>
<add name="VaryByParam" duration="1200" varyByParam="*"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
...
</system.web>
** Метод действия с кэшированием
[OutputCache(CacheProfile = "StaticContent")]
public ActionResult Index()
{
return View(new CollaborateModel());
}
Код для перечисления кэша, да, это грубо, это определяется в методе действия контроллера
var sb = new StringBuilder();
foreach (KeyValuePair<string, object> item in HttpContext.Cache)
{
sb.AppendFormat("{0} : {1}<br />", item.Key, item.Value.ToString());
}
ViewData.Add("CacheContents", sb.ToString());
HttpContext.Cache - это место, где счетчик всегда равен нулю, даже если кэш работает нормально.