博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET MVC 实现与SQLSERVER的依赖缓存
阅读量:7123 次
发布时间:2019-06-28

本文共 1997 字,大约阅读时间需要 6 分钟。

原文:

本文主要是为了了解ASP.NET MVC 实现与SQLSERVER的依赖缓存的功能,针对自己对于这方面知识的学习的过程的一个记录。由于本人也是初次了解这个知识点,有哪些错误,还望高手不吝赐教哦。好,下面正式进入话题。

1、测试的环境及工具: vs2012 sqlserver2008r2 

2、测试目的:当数据库的值有变化时候,页面的缓存也会及时更新。

具体步骤:

1、在VS2012中新建一个ASP.NET MVC 的空的项目。

2、新建一个HomeController ,并创建Index试图。代码很简单,如下

public class HomeController : Controller    {             public ActionResult Index()        {            return View();        }    }

视图代码很简单,就是输出系统当前的时间,以便测试中能很清晰的判断出访问当前页面时候,是缓存的数据,还是从服务器最新返回的数据。

 

@{    Layout = null;}    Index    
@{ Response.Write(DateTime.Now.ToString());}

3、配置web.config文件,主要是<system.web>节点下的<caching>节点的配置,代码如下

关于<sqlCacheDependency>的属性,在此我就不详细介绍了,相关资料大家查阅一下就可以。 

4、SQLSERVER2008的数据缓存依赖的功能配置。

检查 Service Broker是否开启:Select DATABASEpRoPERTYEX('test','IsBrokerEnabled')   如果为1表示成功,0表示未成功。

如未开启执行

ALTER DATABASE test SETENABLE_BROKERGO

为sql缓存依赖启用某表,也就是指定哪张表的数据有变化时候,会更新缓存信息。主要用到asp.net_regsql.exe,该文件存放于C:\Windows\Microsoft.NET\Framework\v4.0.30319 。

用法:打开命令提示工具,进入到asp.net_regsql.exe的所在目录,执行命令

aspnet_regsql.exe -S 
-U
-P
-ed -d
-et -t
将其中<>中替换成你自己测试时候的参数。我测试时候执行的命令如下:
aspnet_regsql.exe -S . -U sa -P sasa -ed -d test -et -t yh 成功开启如下图

5、为HomeController的ACTION 添加缓存的策略,很简单就是在某个ACTION上,添加[OutputCache(Duration = 900, SqlDependency = "test:YH")]标记

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;namespace MvcApplication1.Controllers{    public class HomeController : Controller    {        [OutputCache(Duration = 900, SqlDependency = "test:YH")]        public ActionResult Index()        {            return View();        }    }}

 

经过以上的步骤,整个功能准备已经结束,运行程序,下面看下效果。初次加载呈现的页面就是如下时间,再刷新后,时间依然如下显示,证明程序的缓存功能生效了。那么,是否是在被设置成依赖的表数据修改完成,缓存会被重置呢?

接下来,我在数据库的表中随便修改下表的数据后,立刻刷新页面,看下,时间变了,那么在继续刷新页面,看时间还是如下图的时间,也就是修改完数据表的值,缓存立刻也被更新了。

    自己可以照着测试下吧。

转载地址:http://amxel.baihongyu.com/

你可能感兴趣的文章
警示:锁定中小企业的勒索软件正在改变战术
查看>>
观点 | 99%区块链公司会死掉,1%的幸存者都是区块链+
查看>>
监测网络攻击,麻省理工用上了人工智能
查看>>
不看不知道,容器化OpenStack的10个好处
查看>>
移动通信核心网需引入NFV
查看>>
《云计算揭秘企业实施云计算的核心问题》——3.3节云不适合什么场景
查看>>
Spark学习之RDD简单算子
查看>>
ARM第二季度营收增长17%至3.5亿美元
查看>>
Incorporating Copying Mechanism in Sequence-to-Sequence Learning
查看>>
咸阳市位列智慧城市时空云建设年度考核全国第二名
查看>>
Spring 分析摘录
查看>>
IMF总裁:科技变革对于就业的意义何在
查看>>
突破性能瓶颈 东芝发布全新固态硬盘
查看>>
大数据助力农牧业转型升级
查看>>
90亿赔偿没戏了:法官拒甲骨文重审Android侵权案要求
查看>>
智能LED路灯有多种应用功能 将成为智慧城市发展的突破口
查看>>
论大数据对媒体融合的推进作用
查看>>
微软黑科技:DNA存储技术催生方糖大小的数据中心
查看>>
招聘新手段:录段语音来判断求职者是否适合岗位
查看>>
倪光南:大数据安全问题重要性远超数据安全
查看>>