Проблемы с кэшированием вывода: базовая политика переопределяет определенные политики или никакие политики не применяютсC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Проблемы с кэшированием вывода: базовая политика переопределяет определенные политики или никакие политики не применяютс

Сообщение Anonymous »

У меня возникли проблемы с кэшированием вывода в приложении ASP.NET Core. Вот сценарии, с которыми я столкнулся:
  • Переопределение базовой политики:
    Я настроил базовую политику в мои параметры кэширования вывода. Однако когда эта basePolicy добавляется, она применяется к каждому контроллеру, включая те, для которых я явно указал политику NoCache. Это вызывает нежелательное поведение кэширования на контроллерах, которые не следует кэшировать.
  • Никакие политики не применяются без базовой политики:
    Когда я удаляю basePolicy, ничего не происходит. применяются другие мои политики, даже политика SearchData, которую я настроил для конкретного контроллера. Как будто механизм кэширования полностью перестает работать без basePolicy.
    параметры outputCache:

Код: Выделить всё

builder.Services.AddOutputCache(options =>
{
options.AddBasePolicy(builder => builder.Expire(TimeSpan.FromSeconds(10)));
options.AddPolicy("SearchDataCache", builder => builder.Expire(TimeSpan.FromMinutes(1)).Tag("CatalogSearchData"));
options.AddPolicy("NoCache", builder => builder.NoCache());
});
Контроллеры:

Код: Выделить всё

 [HttpGet]
[OutputCache(PolicyName = "SearchDataCache")]
public async Task GetSearchData()
{
// some db call
}

[Route("RefreshSearchData")]
[HttpGet]
[OutputCache(PolicyName = "NoCache")]
public async Task RefreshSearchData(IOutputCacheStore cacheStore)
{
await cacheStore.EvictByTagAsync("CatalogSearchData", default);
return Ok(new ApiResponse(true, "Success", null));
}
Кто-нибудь сталкивался с подобными проблемами или может кто-нибудь объяснить, как правильно настроить кэширование вывода, чтобы basePolicy не переопределял определенные политики, такие как NoCache, и политики применялись правильно, даже если basePolicy нет?
Я пробовал удалить базовую политику и применить определенные политики.

Подробнее здесь: https://stackoverflow.com/questions/788 ... -no-polici
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»