数据库缓存依赖的配置

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

配置数据库缓存依赖示例

SqlDependency是.net2.0封装的一个类型,要配合sql2005或以上版本才能使用。实际使用的环境是2.0+sqlserver2008r2。

一、检测数据库是否已经启用ServiceBroker

Select DATABASEpRoPERTYEX('数据库名称','IsBrokerEnabled')

--1表示已经启用0表示没有启用

二、如果ServiceBroker没有启用,使用下面语句启用:

ALTER DATABASE 数据库名称SET ENABLE_BROKER

如果执行处于假死状态,执行

ALTER DATABASE DBName SET NEW_BROKER WITH ROLLBACK IMMEDIATE;

ALTER DATABASE DBName SET ENABLE_BROKER;

立刻就会执行完毕

三、注册数据库

aspnet_regsql工具位于Windows\\Framework\[版本文件夹下],用管理员身份打开CMD窗口,进入上述目录,执行以下命令:

aspnet_regsql -S dev -U 用户名-P 密码-d 缓存数据库名称–ed

数据库中会生成新表AspNet_SqlCacheT ablesForChangeNotification

aspnet_regsql -S dev -U 用户名-P 密码-d 缓存数据库名称-t 数据表名称–et

表AspNet_SqlCacheTablesForChangeNotification中会生成新行

四、设置WebConfig

注意必须配置在节中

Polltime不能小于500,默认是60000。

五、代码示例

SqlCacheDependency dep = new SqlCacheDependency("数据库名", "表名");

if (Cache["SqlCon"] == null)

{

DataTable dt1=B_表名.GetList("").Tables[0];

Cache.Add("SqlCon", dt1, dep, DateTime.Now.AddSeconds(60), TimeSpan.Zero, CacheItemPriority.Normal, null);

}

六、注意

SqlCacheDependencyAdmin.EnableTableForNotifications在程序中进行注册不管用

aspnet_regsql中注册的表名有大小写问题,程序中必须一致

网上有些示例说需要:

SqlDependency.Start(connectionString); //推荐将这段代码加到Global.asax的Application_Start 方法中,

SqlDependency.Stop(connectionString); //用于关闭,可加在Global.asax的Application_End方法中。

事实证明可以不加。

相关文档
最新文档