如何清楚.NET CMS網(wǎng)站的緩存
2011/1/17 17:22:43

  在.NET CMS網(wǎng)站中要做一個(gè)清理緩存的功能,程序中有的地方使用的HttpRuntime.Cache來做的緩存,而和數(shù)據(jù)庫交互部分則使用ObjectDataSource提供的緩存機(jī)制。清理HttpRuntime.Cache的緩存很簡單,只要
  List<string> keys = new List<string>();
  // retrieve application Cache enumerator
  IDictionaryEnumerator enumerator = HttpRuntime.Cache.GetEnumerator();
  // copy all keys that currently exist in Cache
  while (enumerator.MoveNext())
  {
  keys.Add(enumerator.Key.ToString());
  }
  // delete every key from cache
  for (int i = 0; i < keys.Count; i++)
  {
  HttpRuntime.Cache.Remove(keys[i]);
  }
  就可以了。本以為ObjectDataSource等數(shù)據(jù)源的緩存也是保存在HttpRuntime.Cache中,經(jīng)過測試沒想到竟然不是,因?yàn)閳?zhí)行上面的代碼以后ObjectDataSource仍然是從緩存讀取數(shù)據(jù)。使用Reflector反編譯發(fā)現(xiàn)ObjectDataSource是使用HttpRuntime.CacheInternal來實(shí)現(xiàn)的緩存,氣氛呀,為什么微軟總愛搞“特殊化”,對外提供一個(gè)Cache用,自己偷偷用CacheInternal做緩存。CacheInternal是internal的,因此沒法直接寫代碼調(diào)用,同時(shí)CacheInternal中也沒提供清空緩存的方法,只能通過實(shí)驗(yàn)發(fā)現(xiàn)_caches._entries是保存緩存的Hashtable,因此就用反射的方法調(diào)用CacheInternal,然后拿到_caches._entries,最后clear才算ok。

返回列表
返回首頁 主站蜘蛛池模板: 韩国电影禁止的爱善良的小子hd | 69精品久久久久| 精品女同一区二区| 国产高清不卡一区二区| 亚洲精品福利网泷泽萝拉| 久久黄色精品视频| 少妇无码一区二区二三区| 亚洲乱码中文字幕小综合| 美女**毛片一级视频| 国产精品日本一区二区在线播放 | 看**一级**多毛片| 国产日韩综合一区二区性色AV| 东京一本一道一二三区| 欧美国产日韩a在线观看| 又大又粗又爽a级毛片免费看| 呦交小u女国产秘密入口| 成人看片app| 亚洲人成色7777在线观看不卡| 特级黄色一级片| 国产又黄又爽又猛的免费视频播放| 丰满年轻的继坶| 欧美福利电影在线| 国产a免费观看| 97青青青国产在线播放| 无码中文人妻在线一区二区三区| 亚洲欧美日韩综合久久久久| 色婷婷亚洲综合| 国产精品日韩欧美一区二区三区| av区无码字幕中文色| 日本毛茸茸的丰满熟妇| 亚洲欧美日韩高清在线看| 白丝袜美女羞羞漫画| 午夜电影成人福利| 黑人巨大白妞出浆| 在线国产一区二区| 中文字幕日韩人妻不卡一区| 欧美又大又粗又爽视频| 亚洲欧美在线观看一区二区| 男人桶女人羞羞漫画全集| 国产伦精品一区二区免费| 69sex久久精品国产麻豆|