ASP.NET 下SQLServer2005 缓存依赖

参考了网上得博客写的缓存依赖..感觉不错.今天测试了下.在此记录一下:

SqlSrever2005 内置了缓存依赖功能,这篇文章主要介绍 Sql2005下的缓存依赖,Sql2000

数据库由于使用的较少,暂不做介绍..

1 首先开启数据库的缓存依赖功能:

aspnet_regsql -S <server> -U sa -P sa -d <database> -ed      启动数据库的数据缓存依赖功能

   aspnet_regsql -S <server> -U sa -P sa -d <database> -t <table> -et      启动数据表的数据缓存依赖功能

2 检测是否启用了Service Broker

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

        ---1 表示启用,0表示没启用

启用Service Broker

ALTER DATABASE 数据库名称 SET ENABLE_BROKER;  

3 然后需要在Global.asax 文件了里显式的启动接受依赖项更改通知的侦听器

//connectionString 为数据库连接字符串

//Application_Start 事件

System.Data.SqlClient.SqlDependency.Start(connectionString);

//Application_End 事件

System.Data.SqlClient.SqlDependency.Stop(connectionString); 

4  应用程序数据缓存中使用

          SqlCommand command = new SqlCommand(sql, conn);

          SqlCacheDependency scd = new SqlCacheDependency(command);

          HttpContext.Current.Cache.Insert("缓存的键值", scd, null);

OK,大功告成..

另外还需要配置WebConfig:

<connectionStrings>
   <add name="testCache" connectionString="data source = .;initial catalog = TestDb;user id = sa ;password =sasasa " providerName="System.Data.SqlClient"/>
</connectionStrings>

<system.web>

<caching>
     <sqlCacheDependency enabled="true" pollTime="1000">
       <databases>
         <add name="abico" connectionStringName="testCache"/>
       </databases>
     </sqlCacheDependency>
   </caching>

</system.web>

pollTime是缓存的事件 以秒为单位。

附:

Service Broker 是SqlServer 里的消息队列,具体的可以参考:

http://blog.entlib.com/EntLib/archive/2009/03/08/sql-server-service-broker.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值