簡體   English   中英

如何從同一服務器上的另一個asp.net應用程序清除asp.net應用程序的緩存?

[英]How to clear the cache of an asp.net application from another asp.net application on the same server?

有一個奇怪的問題。 開始:

我有兩個ASP.NET應用程序:一個Web應用程序和一個Web服務應用程序。

通過網絡服務到達的信息會影響網絡應用所使用的數據庫中的數據。

數據的一個特定位控制下拉菜單中的項-當應用中的數據發生更改時,它可以調用:

HttpContext.Current.Cache.Remove

但是我現在需要清除Web服務中的緩存,因為我可以接收更新該信息的消息。

有人可以推薦這樣做的方法嗎?

緩存失效可能很難。 我不由自主地想到了3種復雜程度不同的解決方案,這些解決方案可能對您不起作用。

首先,您可以為該Web應用程序編寫Web服務,該Web服務應用程序調用該Web服務以使緩存無效。 這可能是最難的。

其次,您可以讓Web服務應用程序在數據庫中寫入一個“臟”標志,Web應用程序可以在呈現下拉菜單之前對其進行檢查。 這是我要走的路。

第三,您可以簡單地停止緩存該特定數據。

您可能有一個Web方法,其唯一目的是清除緩存。

var webRequest = HttpWebRequest.Create(clearCacheURL);
var webResponse = webRequest.GetResponse();

// receive the response and return it as function result
var sr = new System.IO.StreamReader(webResponse.GetResponseStream());
var result = sr.ReadToEnd();

實現具有過期時間的緩存。

Cache.Insert(“ DSN”,connectionString,null,DateTime.Now.AddMinutes(2),Cache.NoSlidingExpiration);

Cache.Insert方法

您可以嘗試SQL依賴關系。 您預訂的表有任何更改時,它將觸發一個事件。

https://www.codeproject.com/Articles/12335/Using-SqlDependency-for-data-change-events

暫無
暫無

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

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