Asp.net使用SqlDependency缓存使用笔记_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Asp.net使用SqlDependency缓存使用笔记

Asp.net使用SqlDependency缓存使用笔记

 2014/4/17 3:11:46  Tatank  博客园  我要评论(0)
  • 摘要:在asp.net中使用SqlDependency缓存1首先要在给Test_01数据库打开监听ALTERDATABASETest_01SETENABLE_BROKER;注:SELECTis_broker_enabledFROMsys.databasesWHEREname='Test_01'查询是否开启此监听(0未开启,1开启)2必须在Test_01数据库中的QueryNotificationService服务上向Guest用户授予发送权限。方法如下
  • 标签:笔记 .net ASP.NET 使用 net SQL 缓存

在asp.net中使用SqlDependency缓存

1 首先要在给Test_01数据库打开监听

ALTER DATABASE Test_01 SET ENABLE_BROKER;

注:SELECT is_broker_enabled FROM sys.databases WHERE name = 'Test_01'  

查询是否开启此监听(0未开启,1开启)

2 必须在 Test_01 数据库中的 QueryNotificationService 服务上向Guest用户授予发送权限。方法如下,注意要区分大小写

USE Test_01
GRANT SEND ON SERVICE::
[http://schemas.microsoft.com/SQL/Notifications/QueryNotificationService]
TO Guest

3 在web.config添加以下节点

<connectionStrings>
<add name="conStr"
connectionString="Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=Test_01;Data Source=JUN-PC"
providerName="System.Data.SqlClient" />
</connectionStrings>

在<system.web> 节点中添加

<caching>

<sqlCacheDependency enabled="true" pollTime="1000">

<databases>

<add name="Test_01" connectionStringName="conStr"/>

</databases>

</sqlCacheDependency>

</caching>

4  在程序启动的时候设置缓存表(设置一次即可)

string conStr = System.Configuration.ConfigurationManager.ConnectionStrings["conStr"].ConnectionString; // 在应用程序启动时运行的代码
SqlDependency.Start(conStr);//启动监听服务,ps:只需启动一次
System.Web.Caching.SqlCacheDependencyAdmin.EnableNotifications(conStr);//设置通知的数据库连接,ps:只需设置一次
System.Web.Caching.SqlCacheDependencyAdmin.EnableTableForNotifications(conStr, "tb_people");//设置通知的数据库连接和表,ps:只需设置一次

5 查询中保存缓存

 SqlConnection conn = new SqlConnection(connstr); 
SqlCommand cmd = new SqlCommand(" select * from tb_People ", conn); SqlDataAdapter adapter = new SqlDataAdapter(cmd); adapter.Fill(ds, "cache"); System.Web.Caching.SqlCacheDependency cd = new System.Web.Caching.SqlCacheDependency("Test_01", "tb_people");//建立关联 Cache.Insert("cache", ds, cd);

 

发表评论
用户名: 匿名