ASP.NET MVC 实现与SQLSERVER的依赖缓存
原文:ASP.NET MVC 实现与SQLSERVER的依赖缓存

本文主要是为了了解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;
}<!DOCTYPE html><html>
<head><title>Index</title>
</head>
<body><div>@{ Response.Write(DateTime.Now.ToString());}</div>
</body>
</html>

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

<connectionStrings><add name="TestConnectionString" connectionString="Data Source=.;Initial Catalog=test;Persist Security Info=True;User ID=sa;Password=sasa" /></connectionStrings>

<caching><sqlCacheDependency enabled="true" pollTime="2000"><databases><add name = "test"connectionStringName = "TestConnectionString"/></databases></sqlCacheDependency></caching>

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

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

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

如未开启执行

ALTER DATABASE test SET
ENABLE_BROKER
GO

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

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

aspnet_regsql.exe -S <Server> -U <Username> -P <Password> -ed -d <databaseName> -et -t <tableName>将其中<>中替换成你自己测试时候的参数。我测试时候执行的命令如下:
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();}}
}

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

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

自己可以照着测试下吧。

posted on 2015-12-09 09:05 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/5031751.html

ASP.NET MVC 实现与SQLSERVER的依赖缓存相关推荐

  1. [ASP.NET MVC 小牛之路]04 - 依赖注入(DI)和Ninject

    特别提醒:本文编写时间是 2013 年,请根据目前 .NET 发展接收你所需的知识点. 为什么需要依赖注入 在[ASP.NET MVC 小牛之路]系列的理解MVC模式文章中,我们提到MVC的一个重要特 ...

  2. [转]Asp.net mvc 网站之速度优化 -- 页面缓存

    网站速度优化的一般方法 由于网站最重要的用户体验就是速度,特别是对于电子商务网站而言. 一般网站速度优化会涉及到几个方面: 1. 数据库优化 - 查询字段简历索引,使用数据库连接池和持久化,现在还有种 ...

  3. Asp.net MVC 教程汇总

     自学MVC看这里--全网最全ASP.NET MVC 教程汇总 MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想 ...

  4. ASP.NET MVC 教程学习

    1. Why :为什么需要ASP.NET MVC 本章主要为大家汇总了为什么学习Asp.net MVC替代WebForms,产生ASP.NET MVC 的需求是什么,只有更好的理解了为什么需要MVC, ...

  5. ASP.NET MVC路由扩展:路由映射

    上周我写了三篇文章(一.二.三)详细地介绍了ASP.NET的路由系统.ASP.NET的路由系统旨在通过注册URL模板与物理文件之间的映射进而实现请求地址与文件路径之间的分离,但是对于ASP.NET M ...

  6. Spring.NET 1.3.1 新特性探索系列1——ASP.NET MVC的依赖注入

    Spring.NET 1.3.1的程序集Spring.Web.Mvc提供对ASP.NET MVC程序的整合.其中SpringControllerFactory类继承自DefaultController ...

  7. 《Pro ASP.NET MVC 3 Framework》学习笔记之五【依赖注入及ninject工具使用】

    一,创建松耦合的组件 1."分解关注点"是MVC模式里面一个非常重要的特性.我们想要在应用程序里面创建的组件尽可能的独立,这样我们就能管理比较少的依赖关系.理想情况下,每个组件都是 ...

  8. Asp.net MVC使用Model Binding解除Session, Cookie等依赖

    上篇文章"Asp.net MVC使用Filter解除Session, Cookie等依赖"介绍了如何使用Filter来解除对于Session, Cookie的依赖. 其实这个也可以 ...

  9. ASP.NET MVC中使用Autofac实现简单依赖注入

    本文参考资料: 1.https://www.cnblogs.com/RayWang/p/11128554.html. 2.https://www.cnblogs.com/eedc/p/6127181. ...

最新文章

  1. 有了NPU,还要DSP吗?
  2. 【计算理论】可判定性 ( 通用图灵机和停机问题 | 可判定性 与 可计算性 | 语言 与 算法模型 )
  3. FixedThreadPool吞掉了异常
  4. 小程序开发学习(4)---天气预报接口API篇
  5. Flex DataGrid 筛选实现
  6. matlab 信道模拟 差错概率,移动信道差错序列的分布概率模拟法及门限电平的讨论...
  7. 删除Chrome自动完成功能的输入背景色?
  8. 12M电信宽带,为什么12台机器上网,总是掉线?有什么办法解决?请给位高手指教...
  9. Python(二):基本数据类型、序列的基本操作
  10. Linux/Unix系统编程手册学习笔记
  11. android 5.1声道,加入5.1声道音效非常强大_三星 I699(GALAXY Trend/电信版)_手机Android频道-中关村在线...
  12. Clearcase, SVN, Git之我见
  13. 基于VRML的虚拟校园漫游系统
  14. 量化交易 第八课 多因子策略流程
  15. Nginx配置防盗链和内核参数优化
  16. 小程序数据缓存机制应用
  17. u盘复制一直正在计算机,解决U盘复制文件时电脑总是重启的方法
  18. Dragonfly单机部署比redis快25倍的缓存中间件
  19. HCL Nomad 1.0.9中的新功能
  20. Unity 使用LineRenderer做画线游戏

热门文章

  1. CTFshow 文件上传 web155
  2. CTFshow 命令执行 web75
  3. cumprod--累积连乘
  4. cvCalcBackProject的例子
  5. java字符串转日期_JAVA字符串转日期或日期转字符串
  6. codeforces#597 D. Shichikuji and Power Grid(虚点+最小生成树+记录)
  7. handlerinterceptoradapter 获取请求参数_SSM框架防止重复请求
  8. 百度地图,加载顺序异步问题,用定时器解决
  9. Python全栈开发之路 【第六篇】:Python基础之常用模块
  10. MBTiles 1.2 规范翻译