我在 ASP.NET Core 应用程序中遇到输出缓存问题。以下是我遇到过的场景:
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<ActionResult<ApiResponse<SearchResponse>>> GetSearchData()
{
// some db call
}
[Route("RefreshSearchData")]
[HttpGet]
[OutputCache(PolicyName = "NoCache")]
public async Task<ActionResult<ApiResponse<string>>> RefreshSearchData(IOutputCacheStore cacheStore)
{
await cacheStore.EvictByTagAsync("CatalogSearchData", default);
return Ok(new ApiResponse<string>(true, "Success", null));
}
有没有人遇到类似的问题,或者有人可以解释如何正确配置输出缓存,以便basePolicy不会覆盖NoCache等特定策略,并且即使不存在basePolicy也可以正确应用策略?
我尝试删除基本策略并应用特定策略。
我也面临着类似的问题。你能解决这个问题吗?