После переключения приложения ASP.NET MVC 5 на Azure Redis (пакет Nuget Microsoft.Web.RedisOutputCacheProvider
) я был удивлен, увидев, что OutputCacheAttribute
когда установлено использование либо OutputCacheLocation.Any
либо OutputCacheLocation.ServerAndClient
[Route("Views/Orders")]
[OutputCache(Duration = 600, Location = OutputCacheLocation.Any)]
public ActionResult Orders()
{
}
случайным образом генерирует следующую ошибку:
При использовании настраиваемого поставщика кэша вывода, такого как 'RedisOutputCache', поддерживаются только следующие политики истечения срока действия и функции кэширования: зависимости файлов, абсолютные истечения срока действия, обратные вызовы статической проверки и обратные вызовы статической замены.
что странно, так как приведенное выше объявление четко определяет просто абсолютное истечение срока действия без каких-либо дополнительных вещей, таких как varybyparam
. После некоторого поиска, похоже, что эта проблема не решена, что крайне расстраивает. Существуют ли внешние поставщики кэша, совместимые с механикой кэширования ASP.NET? Если нет, то как реализовать кэширование вывода HTTP на стороне сервера в кластерных сценариях в приложениях MVC/WebApi?