2010-06-21 23 views
0

我有一些試圖緩存來自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,而不是存儲在它的對象?這一個讓我不知所措,因爲調試器顯示內部密鑰和我傳入的密鑰都是相同的字符串(雖然不是在同一個地方形成) 在此先感謝

+0

Querier.Chache [uri]而不是Cache是​​我猜的錯字? Querier.MakeRequest(uri)是否會返回null? – marapet 2010-06-21 20:32:37

回答

0

因此事實證明,我在兩個字符串上看起來並不十分接近,而其中一個與其他字符略有不同,他們都通過字符串比較方法進入相同的網頁,但並不相同。

+0

請將您的問題標記爲已回答。 – ErikHeemskerk 2010-06-22 07:25:27

+0

由於某種原因,我不會讓我再過23小時 – Jack 2010-06-22 20:39:03

相關問題