SqlCacheDependency 缓存依赖,说白话一点就是缓存,啥时候变化,啥时候删除,需要依赖于的东西

.net 2.0 SqlCacheDependency --zt

以前使用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 </ sqlCacheDependency >


这样即配置了一个缓存依赖的数据库,在页面中的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);
http://www.cnblogs.com/jillzhang/archive/2006/08/15/477914.html

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...