如何清楚.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久久精品国产麻豆|