2013-01-14 31 views
-1

我們有幾個相當大的ASP.NET 2.0應用程序,用C#編寫,運行在Windows Web Server 2008上。 我們經常使用Cache,直到最近沒有問題。 但是,最近幾個月,我們在使用Cache的方法中出現了隨機錯誤。儘管密鑰存在,但值[Cache]似乎爲空。或者在Cache中有一個集合,並且它的所有元素都突然爲空(集合是用constans初始化的,所以這些不是數據庫問題)。 這怎麼可能?有沒有已知的錯誤?這可能是服務器內存或光盤故障?緩存中的數據消除 - 鍵保留,但值爲空

+0

當內存變得很低(或經過一定時間後)時,緩存的值就會丟失。所以值變成'null':按設計。 –

回答

0

即使您使用Cache.NoAbsoluteExpiration + Cache.NoSlidingExpiration填充緩存,ASP.NET也可以從緩存中刪除項目(例如,當內存變低時)。

通過CacheItemPriority.NotRemovableCache.Insert()以防止發生。

+0

不,不,這不是正常Cache工作的問題。問題是我們緩存例如一個ArrayList填充了一些字符串。然後在一段時間之後,我們將ArrayList從Cache中取出,並且ArrayList [i]爲空,儘管肯定我們從不在那裏放置任何null。 – user34402

+2

@ user34402:然後更好地描述你的問題。也發佈相關的代碼。 –

+0

在你說'Cache [key]'爲空的問題中,現在你說'(ArrayList )Cache [key] [i]'爲空。這是不一樣的。請發佈您的緩存存儲/檢索代碼並澄清您的問題。 – istepaniuk