[英]Implementing Custom CacheDependency to invalidate ASP.Net cache item
[英]ASP.NET cleanest way to invalidate cache across applications
我有兩個ASP.NET應用程序在同一台服務器上運行並共享同一個數據庫。 一個是使用MVC開發的前端,它緩存數據以避免數據庫調用以檢索相同的對象。 另一個是使用WebForms開發的后端,用於管理CRUD操作。
我想在后端操作發生時使前端緩存無效。 我不需要一個改進的機制...后端只會偶爾使用,並可能使所有緩存的對象無效。
我遇到過一些解決方案,但它們並不是非常干凈的解決方案......比如,在db設置表上放置一個標志,使用共享配置文件,從后端應用程序調用前端Web服務。 每次調用前端頁面時都需要應用每個解決方案,因此我需要盡可能減少資源消耗。
我不想使用memcached或AppFabric或類似的'因為我認為他們對我的基本需求有點過分。
非常感謝你!
您可以執行一個使緩存無效的操作。 您可以向其傳遞一個秘密令牌,以檢查該請求是否來自您的其他Web應用程序以確保安全性。
所以它看起來像這樣:
public ActionResult Invalidate(string key)
{
if (key == ConfigurationManager.AppSettings["ApplicationSecurityKey"])
{
_cacheService.Invalidate();
return Content("ok");
}
return null;
}
在兩個項目的兩個web.config
文件中,您將擁有:
<appSettings>
<add key="ApplicationSecurityKey" value="SomeVerySecureValue" />
</appsettings>
您可以從其他Web應用程序中調用它,如下所示:
WebClient client = new WebClient();
client.QueryString.Add("key", ConfigurationManager.AppSettings["ApplicationSecurityKey"]);
string response = client.DownloadString(url)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.