記得之前在寫緩存DEMO的時候,好像配置過這個元素,好像這個元素還有點常用。
一、caching元素列表
元素 | 說明 |
---|---|
cache |
定義全局應用程序緩存設置。 可選的元素。 |
outputCache |
指定應用程序范圍的輸出緩存設置。 可選的元素。 |
outputCacheSettings |
指定可以應用於應用程序中頁的輸出緩存設置。 可選的元素。 |
sqlCacheDependency |
為 ASP.NET 應用程序配置 SQL 緩存依賴項。 可選的元素。 |
1、cache
屬性
特性 |
說明 |
---|---|
disableMemoryCollection |
獲取或設置一個值,該值指示是否當計算機處於內存壓力下時是否禁止執行緩存內存回收。 可選的 Boolean 特性。 |
disableExpiration |
獲取或設置一個值,該值指示是否禁用緩存過期。 如果禁用,則緩存項不會過期,並且不會對過期緩存項執行后台清理。 可選 Boolean 特性。 |
privateBytesLimit |
獲取或設置一個值,該值指示在緩存開始刷新過期項並嘗試回收內存之前應用程序的最大專用字節大小。 此限制同時包括緩存所使用的內存量以及運行應用程序的正常內存開銷。 如果設置為零,則指示 ASP.NET 將使用自己的試探法確定何時開始回收內存。 可選 Int64 特性。 |
percentagePhysicalMemoryUsedLimit |
獲取或設置一個值,該值指示在緩存開始刷新項並嘗試回收內存之前可使用的計算機的物理內存的最大百分比。請注意,此限制適用於使用中的總物理內存。 設置為 0 會導致在插入項后立即將其移除。 可選 Int32 特性。 |
privateBytesPollTime |
獲取或設置一個值,該值指示兩次輪詢應用程序專用字節內存使用量之間的時間間隔。 可選 TimeSpan 特性。 |
位置
caching -> configuration-> system.web //該元素放於<system.web>下的<configuration>節點下
示例:
<cache disableMemoryCollection = "false" //不禁止內存回收 disableExpiration = "false" //緩存不會過期 privateBytesLimit = "20971520" //當內存到這個值時,開始回收內存 percentagePhysicalMemoryUsedLimit = 60" //當程序使用超過60%的內存時,開始回收 privateBytesPollTime = "00:01:00"/> //1秒檢測一次當前程序所有內存大小
2、outputCache
屬性
特性 |
說明 |
---|---|
enableOutputCache |
可選的 Boolean 特性。 啟用/禁用頁輸出緩存。 如果禁用,則無論是否具有編程性或聲明性設置,都不會緩存頁。 默認值為 true。 |
enableFragmentCache |
可選的 Boolean 特性。 啟用/禁用應用程序片段緩存。 如果禁用,則無論是否使用 @ OutputCache 指令或緩存配置文件,都不會緩存頁。 包括一個緩存控件標頭,指示上游代理服務器以及瀏覽器客戶端不應嘗試緩存頁輸出。 默認值為 false。 |
sendCacheControlHeader |
可選的 Boolean 特性。 獲取或設置一個值,該值指示默認情況下 cache-control:private 標頭是否由輸出緩存模塊發送。 默認值為 false。 |
omitVaryStar |
可選的 Boolean 特性。 允許/禁止在響應中發送 HTTP“Vary: *”標頭。 默認設置為 False,表示為輸出緩存頁發送“Vary: *”標頭。 默認值為 false。 |
defaultProvider |
可選的字符串特性。 獲取或設置默認輸出緩存提供程序。 默認值為“AspNetInternalProvider”。 這是 ASP.NET 提供的內存緩存。 |
位置
caching -> configuration-> system.web
示例
<outputCache enableOutputCache = "true" //啟用緩存頁 enableFragmentCache = "true" //啟用程序片段緩存 sendCacheControlHeader = "true" //cache-control:private 標頭由輸出緩存模塊發送 omitVaryStar = "false" //表示為輸出緩存頁發送“Vary: *”標頭。 defaultProvider="AspNetInternalProvider"> //輸出緩存提供程序。 </outputCache>
子元素providers 元素
add |
可選元素。 將自定義輸出緩存提供程序添加到應用程序可用提供程序的集合。 |
clear |
可選元素。 從應用程序可用提供程序的集合中移除所有配置的輸出緩存提供程序。 |
remove |
可選元素。 從應用程序提供程序的集合中移除指定的輸出緩存提供程序。 |
示例:
<providers> <add /> <clear /> <remove /> </providers>
3、
4、sqlCacheDependency
特性 |
說明 |
---|---|
enabled |
必選的 Boolean 特性。 指示是否輪詢更改。 |
pollTime |
可選 Int32 特性。 設置 SqlCacheDependency 類實例輪詢數據庫表更改的頻率。 此值對應於連續兩次輪詢之間的毫秒數。 不能將其設置為小於 500 毫秒的值。 默認值為 1 分鍾。 |
子元素
元素 |
說明 |
---|---|
databases |
可選元素。 包含一個或多個可以由 SqlCacheDependency 類實例使用的命名的 SQL 連接。 |
位置
caching -> configuration-> system.web
SQL依賴緩存配置
<compilation debug="true" targetFramework="4.0" /> <caching> <sqlCacheDependency enabled="true" pollTime="1000"> //此行配置的意思是,開啟數據庫緩存,輪詢時間為1秒,這是為了能夠快速看到更改效果 <databases> <add connectionStringName="ApplicationServices" name="con"/> </databases> </sqlCacheDependency> </caching>
三、示例
頁面輸出緩存配置示例:
<outputCacheSettings> <outputCacheProfiles> <add name="ServerOnly" duration="60" //過期時間為60秒 varyByCustom="browser" location="Server" /> </outputCacheProfiles> </outputCacheSettings>