2009-11-03 4 views
1

Я использую IIS7 и C# и mysql. и я помещал некоторые объекты в систему кеша asp.net с ключевыми словами sql. он имеет очень простую логику. Укажите выбранный набор данных в кеш с заданным ключевым словом sql.Потеря моих объектов в кеше

это проблема. когда я вызываю свой сайт с www.abc.com, он работает нормально. в то время как серфинг в abc.com после второго щелчка, сначала заполненный набор данных, становится пустым набором данных, и мой сайт начинает показывать пустые списки.

Я попытался сменить ключи на некоторые статические слова и скопировать наборы данных, а затем кешировать их, но пока ничего не добился.

Надеюсь, я хорошо объяснил. http://beta.mpazari.com - это место, если вам нравится видеть, и в выпадающих списках красных ящиков списки должны быть заполнены данными.

здесь является моей функции заполнить

public void Fill(ref DataSet ds, string sql, DateTime? cacheTime, string key) 
    { 
     if (key == null) key = sql; 
     if (cacheTime == null) cacheTime = DateTime.Now.AddMinutes(generalCacheExpiarionTimeInMinutes); 
     if (cache[key] != null) { ds = (DataSet)cache[key]; return; } 
     MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["motorConnectionString"].ConnectionString); 
     try 
     { 
      conn.Open(); 
      MySqlDataAdapter myda = new MySqlDataAdapter(sql, conn); 
      if (ds == null) ds = new DataSet(); 

      ds.Clear(); 
      myda.Fill(ds); 
      cache.Insert(key, ds.Copy(), null, cacheTime.Value, System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.NotRemovable,null); 
     } 
     finally 
     { 
      conn.Close(); 
     } 
    } 

заранее спасибо.

+0

Возможно, вам придется опубликовать код, чтобы получить ответ на этот вопрос. Как вы кладете его в кеш? Какие варианты зависимости/времени вы используете? –

+0

Мне нужно объяснить, что я попытался добавить копию набора данных или сам ds, но не успел. что exmple копирует набор данных и помещает новый объект в кеш. –

+0

У меня все еще есть эта проблема, и я просто понял, что когда я помещаю набор данных в память, он теряет имена столбцов странно. –

ответ

0

Какой кеш вы используете? ASP.NET имеет несколько мест, которые можно кэшировать ... Я подозреваю, что вы можете помещать их в кеш, который удаляется в конце каждого запроса.

Смотрите эти ...
http://msdn.microsoft.com/en-us/library/system.web.httpcontext.cache.aspx
(кэш контекста ... сохраняется в течение жизни домена приложения)

http://msdn.microsoft.com/en-us/library/system.web.httpcontext.items.aspx
(Request Cache ... сохраняется до конца запроса)

Смежные вопросы