У меня странная, спорадическая проблема.Удалит ли ASP.Net отдельные таблицы из кэшированного набора данных, чтобы освободить память?
У меня есть хранимая процедура, которая возвращает обратно 5 небольших таблиц (например, идентификаторы и текстовые описания для выпадающих списков статуса). Код вызывает это и помещает возвращаемый набор данных в кэш-память ASP.Net. Отдельные методы вызываются для извлечения отдельных таблиц из набора данных в привязку данных к элементам управления в моем веб-приложении.
Только на моем сервере QA одна таблица исчезает. Таблица будет доступна для одного сценария тестирования; однако в следующий раз, когда выполняется один и тот же сценарий, одна таблица имеет значение null. Таблица, которая идет в МВД, всегда одна и та же (таблица № 4 из 5, если быть точным).
Если ASP.Net WP нуждается в памяти, может ли он удалить отдельную таблицу из кэшированного набора данных, сохраняя индексы набора данных на месте?
Ниже приведен код кэширования:
public static DataSet GetDropDownLists()
{
DataSet ds = (DataSet)HttpContext.Current.Cache["DropDownListData"];
if (null == ds)
{
// - Database Connection Information Here
ds = db.ExecuteDataSet(CommandType.StoredProcedure, "Sel_DropDownListData");
HttpContext.Current.Cache.Add("DropDownListData", ds, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero, CacheItemPriority.Normal, null);
}
return ds;
}
Вот пример метода, который возвращает пустую таблицу:
public static DataTable GetStatusList()
{
return GetDropDownLists().Tables[3];
}
Опять же, это происходит только на моем QA сервере и не тогда, когда мой местный код подключается к базе данных QA или что-либо на отдельном сервере для моего собственного тестирования разработки.
Благодаря