我有一些試圖緩存來自Web服務的響應的代碼(客戶端)。我將響應保存在從System.Web.HttpRuntime獲取的System.Web.Caching.Cache對象中。System.Web.Caching.Cache爲緩存中的某個鍵返回NULL
我打了一次電話,然後我重新做了一次,並有一個控制檯輸出,指出它從緩存中加載。但我從來沒有得到控制檯輸出。我在調試器中運行它,並在Get和Cache處設置一個斷點作爲條目,並且緩存中的鍵與我傳入get的鍵相同,但它仍然返回null ?????
基本上這個代碼看起來像這樣。
public object MakeRequest(string uri)
{
(break point)object retList = Querier.Cache.Get(uri);
if (retList != null)
{
Console.WriteLine("Loaded from Cache");
}
retList = Querier.MakeRequest(uri);
Querier.Chache[uri] = retList;
return retList;
}
查詢器是一個對象,它使我的http請求和反序列化對象然後返回它。
任何人都有一個想法,爲什麼緩存返回null,而不是存儲在它的對象?這一個讓我不知所措,因爲調試器顯示內部密鑰和我傳入的密鑰都是相同的字符串(雖然不是在同一個地方形成) 在此先感謝
Querier.Chache [uri]而不是Cache是我猜的錯字? Querier.MakeRequest(uri)是否會返回null? – marapet 2010-06-21 20:32:37