在ASP.NET頁面中如何使用 Cache (相依於 Sql Server)

  • 4121
  • 0
  • 2014-08-20

摘要:在前台頁面中如何使用 Cache (相依於 Sql Server)

在 Microsoft Framework 3.5 版本中推出了一個 System.Web.Caching.Cache 類別,可以在資料表更新的時候馬上更新前台ASP.NET頁面的快取,既能節省 Sql Server 資源,又能讓頁面資訊可以更新,可謂魚與熊掌兼得~

以下開始說明:
1. 在開始功能表輸入 cmd 呼出文字列介面


2. 執行「CD C:\Windows\Microsoft.NET\Framework\v2.0.50727」切換目錄到 C:\Windows\Microsoft.NET\Framework\v2.0.50727


3. 執行 aspnet_sqlreg.exe 並加入參數~~~


aspnet_regsql.exe -S localhost -U sa -P xxxxxx -ed -d ProductDB -et -t News_List

其中 -S 是 Sql Server 具體名稱(或 IP)、-U 是帳號、-P 是密碼、-ed -d 是要開啟 Cache 功能的資料庫名稱、-et -t 是要開啟 Cache 功能的資料表名稱,由此可知必須要一個一個資料表去設定~


4. 在要開啟 Cache 功能的專案之 web.config 裡面找到 system.web 區段,加入以下設定 Cache Dependency 用的節點,其中 sqlCacheDependency 節點的 pollTime 是表示每隔多少毫秒就去 Sql Server 檢查一次,看資料表有沒有更新,而 databases 中 add 節點的 name 是等一下在頁面上要用到的 Cache 設定節點名稱、connectionStringName 是對應的 connectionString 名稱,請改為自己的 connectionString 名稱。此外可以看到,個別資料庫可以設定自己的 pollTime ~:



        
            
                
                    
                
            
        


5. 在想要開啟 Cache 的頁面中加入下列 code,請加在 <html> 標籤之前~ 下列的 code 裡面用到兩張資料表,表示只要有一個 table 的內容更變更就重組 Cache~


<%@ OutputCache Duration="600" SqlDependency="LocalSqlServerCache:Nodes;LocalSqlServerCache:News_List" VaryByParam="none" %>

6. 完工~