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

本文共 2045 字,大约阅读时间需要 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();        }    }}

 

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

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

    自己可以照着测试下吧。

转载于:https://www.cnblogs.com/Y-X-DONG/p/4635160.html

你可能感兴趣的文章
我所了解的一些路由器对比
查看>>
Can DBC文件翻译
查看>>
Yii2的深入学习--入口文件
查看>>
CSS 巧用 :before和:after
查看>>
同源策略
查看>>
宽容的心态,开明的头脑
查看>>
centos7安装docker和docker compose【转】
查看>>
由一个简单的有返回值的子程序想到的
查看>>
php:获取一个表不含text类型的全部字段
查看>>
java-泛形使用
查看>>
多线程下C#如何保证线程安全?
查看>>
前端限流大法
查看>>
html 中head显示 在标题栏里面的图片
查看>>
关于float的低精度问题
查看>>
JavaScript学习笔记之Object
查看>>
poj1149 PIGS
查看>>
深浅拷贝与赋值
查看>>
SharePoint Online 创建网站集
查看>>
一阶段
查看>>
Programmer, Rank Thyself
查看>>