以前使用cache的時(shí)候,總是當(dāng)心cache中數(shù)據(jù)版本和數(shù)據(jù)庫(kù)中數(shù)據(jù)版本不一致,雖然通過(guò)觸發(fā)器+文件io實(shí)現(xiàn)的文件緩存依賴(lài)也可以實(shí)現(xiàn)緩存數(shù)據(jù)的及時(shí)更新,但是每個(gè)應(yīng)用產(chǎn)生一個(gè)io文件,不怎么經(jīng)濟(jì),另外觸發(fā)器性能也不是很高,所以經(jīng)常在添加刪除修改的時(shí)候,刪除緩存鍵值來(lái)實(shí)現(xiàn),但可能還有遺漏的地方。asp.net 2.0中實(shí)現(xiàn)了sqlcachedependency,本文描述如何在asp.net 2.0實(shí)現(xiàn)sqlcachedependency:
首先,在web.config system.web節(jié)點(diǎn)文件里面加上如下代碼: 
   <caching>
    <sqlcachedependency enabled="true">
     <databases>
      <add name="atlasdemodb" connectionstringname="atlasdemodbconnectionstring" polltime="12000"></add>
     </databases>
    </sqlcachedependency>
   </caching>
這樣即配置了一個(gè)緩存依賴(lài)的數(shù)據(jù)庫(kù),在頁(yè)面中的objectdatasource對(duì)象的enablecaching設(shè)置為true.,然后設(shè)置sqlcachedependency屬性為atlasdemodb:simpledemo1,atlasdemodb為web.config配置的緩存數(shù)據(jù)庫(kù)名稱(chēng),simpledemo1為該數(shù)據(jù)庫(kù)下的一個(gè)表名。
光是這樣,系統(tǒng)還會(huì)出現(xiàn)如下問(wèn)題:
沒(méi)有為 sql 緩存通知啟用數(shù)據(jù)庫(kù)“atlasdemodb”。
要為 sql 緩存通知啟用數(shù)據(jù)庫(kù),請(qǐng)使用 system.web.caching.sqlcachedependencyadmin.enablenotifications 方法,或命令行工具 aspnet_regsql。要使用此工具,請(qǐng)運(yùn)行“aspnet_regsql.exe -?”以了解詳細(xì)信息。 
按照上面所說(shuō),運(yùn)行aspnet_regsql.exe 比較煩,可以在page_load事件中填寫(xiě)
system.web.caching.sqlcachedependencyadmin.enabletablefornotifications(system.configuration.configurationmanager.connectionstrings["atlasdemodbconnectionstring"].connectionstring, "simpledemo1");
這樣就可以使用sqlcachedependency了。
最大的網(wǎng)站源碼資源下載站,
新聞熱點(diǎn)
疑難解答
圖片精選