Я столкнулся с той же ошибкой, но с совершенно другой проблемой и решением. В моем случае я использую LINQ to SQL для заполнения некоторых выпадающих списков, а затем кэширую результаты для дальнейших просмотров страниц. Все будет нормально загружаться с чистым кешем, а затем произойдет ошибка при последующих просмотрах страницы.
if (Cache["countries"] != null)
{
lbCountries.Items.Clear();
lbCountries.DataValueField = "Code";
lbCountries.DataTextField = "Name";
lbCountries.DataSource = (Cache["countries"]);
lbCountries.DataBind();}
else
{
var lstCountries = from Countries in db_read.Countries orderby Countries.Name select Countries;
lbCountries.Items.Clear();
lbCountries.DataValueField = "Code";
lbCountries.DataTextField = "Name";
lbCountries.DataSource = lstCountries.ToList();
lbCountries.DataBind();
Cache.Add("countries", lstCountries, null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(0, 240, 0), System.Web.Caching.CacheItemPriority.High, null);
}
Проблема возникла из:
Cache.Add ("страны", lstCountries , ноль, System.Web.Caching.Cache.NoAbsoluteExpiration, новый интервал времени (0, 240, 0), System.Web.Caching.CacheItemPriority.High, ноль) ;
Когда это должно было быть:
Cache.Add ("country", lstCountries.ToList (), null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan (0, 240, 0), System.Web.Caching.CacheItemPriority. Высокий, ноль);