簡體   English   中英

以編程方式清除asp.net核心中的緩存配置文件

[英]Programmatically clear cache profile in asp.net core

我在我的asp.net核心web api中設置了一個緩存配置文件,如下所示:

services.AddMvc(options => {
     // Cache profile for lookup data will expire every 15 minutes.
     options.CacheProfiles.Add("LookupData", new CacheProfile() { Duration = 15 });    
});

我在“lookupsController”的頂部使用了這個屬性,因為每個方法中返回的信息列表不會定期更改(盡管緩存每15分鍾自動過期)。

[ResponseCache(CacheProfileName = "LookupData")]
[Produces("application/json")]
[Route("api/Lookups")]
public class LookupsController : Controller
{
    ...
}

我有另一個管理控制器,可以允許用戶添加和刪除查找控制器列表中的項目,這不會經常發生但是當它發生時,我想以編程方式強制緩存配置文件重置並強制后續Web請求獲取最新而不是保留現在過時的緩存數據列表。

如何以編程方式實現緩存重置? - 然后我可以將此代碼添加到我的管理控制器方法中,以強制緩存重置。 以前有人不得不這樣做嗎?

你無法真正清除緩存,因為它不是服務器而是客戶端緩存。 ResponseCache屬性只會在響應中設置某些標頭。 這是如何工作的簡化描述:瀏覽器(或任何中間代理)向您的api發出請求通知那些響應標頭,看到此響應有效15分鍾,所以不會在接下來的15分鍾內重復該請求而不是從本地緩存。 由於您無法控制本地緩存 - 您無法清除它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM