快取的 outputCache 項目 (ASP.NET 設定結構描述)
指定整個應用程式的輸出快取設定。
<outputCache enableOutputCache="true|false"
enableFragmentCache="true|false"
sendCacheControlHeader="true|false"
omitVaryStar="true|false"
defaultProvider="AspNetInternalProvider">
</outputCache>
屬性和項目
下列章節會說明屬性、子項目和父項目。
屬性
屬性 |
描述 |
---|---|
enableOutputCache |
選擇性 Boolean 屬性。 啟用/停用頁面輸出快取。 如果停用,則不會快取任何頁面,不管程式設計或宣告式設定為何。 預設值為 true。 |
enableFragmentCache |
選擇性 Boolean 屬性。 啟用/停用應用程式片段快取。 如果停用,則不會快取任何頁面,無論使用的是 @ OutputCache 指示詞還是快取設定檔。 包括快取控制標頭,表示上游 Proxy 伺服器和瀏覽器用戶端不應嘗試快取頁面輸出。 預設值為 false。 |
sendCacheControlHeader |
選擇性 Boolean 屬性。 取得或設定值,指出 cache-control:private 標頭是否依預設值由輸出快取模組傳送。 預設值為 false。 |
omitVaryStar |
選擇性 Boolean 屬性。 啟用/停用傳送回應中的 HTTP "Vary: *" 標頭。 如果預設設定為 false,則會為輸出快取頁面傳送 "Vary: *" 標頭。 預設值為 false。 |
defaultProvider |
選擇性的字串屬性。 取得或設定預設輸出快取提供者。 預設值為 "AspNetInternalProvider"。 這是由 ASP.NET 所提供的記憶體中快取。 |
子項目
項目 |
描述 |
---|---|
providers |
選擇性的子元素,可用來設定自訂輸出快取提供者。 |
父項目
項目 |
描述 |
---|---|
configuration |
Common Language Runtime 和 .NET Framework 應用程式所使用之每一個組態檔中的必要根項目。 |
system.web |
在組態檔中,指定 ASP.NET 組態設定的根項目。 包含設定 ASP.NET Web 應用程式和控制該應用程式之行為方式的組態項目。 |
caching |
設定 Web 應用程式的快取設定。 |
備註
預設組態
下列預設 outputCache 項目沒有在電腦組態檔或根目錄 Web.config 檔中明確設定,但它卻是 .NET Framework 2.0 版中應用程式所傳回的預設組態。
<outputCache enableOutputCache = "true"
enableFragmentCache = "true"
sendCacheControlHeader = "true"
omitVaryStar = "false"
defaultProvider="AspNetInternalProvider">
</outputCache>
下列範例示範如何停用 ASP.NET 應用程式的輸出快取:
<outputCache enableOutputCache="false" />
可延伸的輸出快取
ASP.NET 可讓您擴充輸出快取,以及設定一個或多個自訂輸出快取提供者。 輸出快取提供者可以使用任何儲存機制保存 HTML 內容。 這些儲存選項可包括本機或遠端磁碟、雲端儲存及分散式快取引擎。
輸出快取提供者擴充性可讓您為網站設計更具挑戰性且具備更高智能的輸出快取策略。 例如,建立輸出快取提供者,可以將其設計成從記憶體中快取前十大常用的網頁,而對比較不常用的網頁,則從磁碟中擷取。 或者,您可以視所要呈現之網頁所需,快取不同的組合,但採用分散式快取,以卸載前端網頁伺服器的記憶體使用量。
您可將自訂輸出快取提供者建立成衍生自 OutputCacheProvider 型別的類別。 然後您就可以使用 outputCache 項目的 providers 子區段,在 Web.config 檔案中設定提供者。
根據預設,在 ASP.NET 中,所有 HTTP 回應、呈現的網頁及控制項都會使用前述範例中的記憶體內輸出快取 (其中 defaultProvider 屬性設定為 AspNetInternalProvider)。 您可以為 defaultProvider 指定其他提供者名稱,變更 Web 應用程式所使用的預設輸出快取提供者。
此外也可針對個別的控制項與要求選取不同的輸出快取提供者。 為不同 Web 使用者控制項指定不同輸出快取提供者最簡單的方法,是在網頁或控制項指示詞中以宣告方式使用 providerName 屬性,如下列範例所示:
<%@ OutputCache Duration="60" VaryByParam="None"
providerName="DiskCache" %>
您可以為 HTTP 要求指定其他輸出快取提供者,並覆寫 Global.asax 檔案中的 GetOutputCacheProviderName 方法,以程式設計方式指定該 HTTP 要求所使用的提供者。
請參閱
工作
Walkthrough: Using Output Caching to Enhance Web Site Performance
How to: Lock ASP.NET Configuration Settings
參考
概念
Securing ASP.NET Configuration
ASP.NET Configuration Scenarios