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的依赖缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 注意,ruby循环体定义的变量在结束时后
- 下一篇: 键盘-App监听软键盘按键的三种方式