儘管我已經指定了一個唯一的鍵,但似乎下面的代碼將爲5個請求返回一個值,然後再爲另一個返回另一個值,然後恢復到原始請求中保存的值並繼續,直到有10個不同的值對象全部存儲在相同的密鑰下。 它似乎幾乎隨機哪些值將從緩存中返回。Httpruntime緩存鍵不是唯一的嗎?
string strDateTime = string.Empty;
string cachename = "datetimeexample";
object cachedobject = HttpRuntime.Cache.Get(cachename);
if (cachedobject != null)
strDateTime = (string)cachedobject;
else
{
strDateTime = DateTime.Now.ToString();
HttpRuntime.Cache.Insert(cachename, strDateTime, null, DateTime.MaxValue, TimeSpan.FromDays(10), CacheItemPriority.NotRemovable, null);
}
Response.Write(strDateTime +" keys:"+ HttpRuntime.Cache.Count);
非常困惑,這是因爲線程還是什麼?
你確定它存儲多個對象具有相同的密鑰?也就是說,你確定鑰匙*完全相同嗎?如果鍵已經存在,'Insert'方法應該覆蓋現有的對象。 – LukeH 2009-09-14 12:04:03
是的,關鍵是完全一樣的,代碼片斷包裝在靜態方法/類中的圖像。 – maxp 2009-09-14 12:46:52
您正在單臺機器或服務器場上運行嗎? – LukeH 2009-09-15 10:06:18