1
我有一個應用程序在HttpRuntime.Cache中緩存數據庫中的數據。當我以每秒1000個用戶的速度加載測試此應用程序時,緩存中的某些值將被損壞。HttpRuntime.Cache在Windows Azure的高負載下損壞數據
例如,我有一個頁面,它只是查詢數據庫的內容。它首先檢查緩存,如果可用則從那裏獲取數據。
DataSet ds;
var cachedData = HttpRuntime.Cache["homepage"];
if (cachedData == null) {
ds = getDataSet("SQL query...");
addToCache("homepage", ds);
}
else {
ds = (DataSet)cachedData;
}
這工作得很好高達每秒約100個用戶,但是當我開始壓力測試多達1000個用戶的一些緩存表中的字段返回DBNull.Value。經過測試,當我檢查緩存中有什麼時,我可以看到字段現在是DBNull.Value。
我已啓用日誌記錄並檢查了DataSet僅添加到緩存一次,但在壓力測試過程中以某種方式被破壞。
有沒有人見過這個或有什麼問題有一些指針?它是在Windows Azure下承載的,具有專門的緩存工作者角色。