- Переопределение базовой политики:
Я настроил базовую политику в мои параметры кэширования вывода. Однако когда эта 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));
}
Я пробовал удалить базовую политику и применить определенные политики.
Подробнее здесь: https://stackoverflow.com/questions/788 ... -no-polici