2014-03-27 44 views
1

有點奇怪的問題。這裏有:如何從同一臺服務器上的另一個asp.net應用程序清除一個asp.net應用程序的緩存?

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

通過網絡服務使用的數據庫中的web服務效果數據到達的信息。

數據的一個特定的位控制在下拉菜單項 - 當數據在應用程序中改變它可以調用:

HttpContext.Current.Cache.Remove 

,但我現在需要清除Web服務的緩存爲我可以收到更新該信息的消息。

任何人都可以推薦一種方法嗎?

+0

[見這個網站進行了有益的緩存輔助類]到底(http://johnnycoder.com/blog/2008/12/10/c-cache-helper-class/) – Amicable

回答

5

緩存失效能吃苦耐勞。關於我的頭頂,我可以想到3種不同複雜性的解決方案,這些解決方案可能適用於您,也可能不適合您。

首先,您可以爲Web應用程序調用Web應用程序來編寫Web服務,以使緩存失效。這可能是最難的。其次,您可以讓Web服務應用程序在數據庫中寫入一個「髒」標誌,Web應用程序在呈現下拉菜單之前可以檢查它。這是我要去的路線。

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

+0

。 ..我們停止緩存它!我們執行了第二個,但我們最終放棄了這種做法 - 謝謝 – Comanighttrain

3

您可能有一個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(); 
0

實施具有到期時間的緩存。

Cache.Insert( 「DSN」,的connectionString,NULL, DateTime.Now.AddMinutes(2),Cache.NoSlidingExpiration);

Cache.Insert Method

相關問題