首页 > 编程 > .NET > 正文

如何实现asp.net 2.0的SqlCacheDependency

2024-07-10 13:09:54
字体:
来源:转载
供稿:网友

以前使用cache的时候,总是当心cache中数据版本和数据库中数据版本不一致,虽然通过触发器+文件io实现的文件缓存依赖也可以实现缓存数据的及时更新,但是每个应用产生一个io文件,不怎么经济,另外触发器性能也不是很高,所以经常在添加删除修改的时候,删除缓存键值来实现,但可能还有遗漏的地方。asp.net 2.0中实现了sqlcachedependency,本文描述如何在asp.net 2.0实现sqlcachedependency:
首先,在web.config system.web节点文件里面加上如下代码:


   <caching>
    <sqlcachedependency enabled="true">
     <databases>
      <add name="atlasdemodb" connectionstringname="atlasdemodbconnectionstring" polltime="12000"></add>
     </databases>
    </sqlcachedependency>
   </caching>

这样即配置了一个缓存依赖的数据库,在页面中的objectdatasource对象的enablecaching设置为true.,然后设置sqlcachedependency属性为atlasdemodb:simpledemo1,atlasdemodb为web.config配置的缓存数据库名称,simpledemo1为该数据库下的一个表名。
光是这样,系统还会出现如下问题:


没有为 sql 缓存通知启用数据库“atlasdemodb”。

要为 sql 缓存通知启用数据库,请使用 system.web.caching.sqlcachedependencyadmin.enablenotifications 方法,或命令行工具 aspnet_regsql。要使用此工具,请运行“aspnet_regsql.exe -?”以了解详细信息。
按照上面所说,运行aspnet_regsql.exe 比较烦,可以在page_load事件中填写


system.web.caching.sqlcachedependencyadmin.enabletablefornotifications(system.configuration.configurationmanager.connectionstrings["atlasdemodbconnectionstring"].connectionstring, "simpledemo1");
这样就可以使用sqlcachedependency了。

最大的网站源码资源下载站,

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表