科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何实现asp.net 2.0的SqlCacheDependency

如何实现asp.net 2.0的SqlCacheDependency

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

以前使用Cache的时候,总是当心Cache中数据版本和数据库中数据版本不一致

作者:中国IT实验室 来源:中国IT实验室 2007年9月7日

关键字: SqlCache ASP.NET

  • 评论
  • 分享微博
  • 分享邮件

  以前使用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了。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章