ASP.NET 提供了許多可用于配置頁面輸出緩存和緩存 API 的選項??梢栽谔幚砹隧撁骓憫?yīng)后使用頁面輸出緩存來緩存此頁面響應(yīng)。也可以通過編程的方式使用緩存 API 來緩存應(yīng)用程序數(shù)據(jù)。有關(guān)更多信息,請參見 ASP.NET 緩存概述。
您可以在以下這些位置配置頁面輸出緩存:
配置文件 可以在應(yīng)用程序配置層次結(jié)構(gòu)的任何配置文件中配置頁面輸出緩存設(shè)置,包括 Machine.config 文件(用于設(shè)置計算機上所有的 Web 應(yīng)用程序)和特定于應(yīng)用程序的 Web.config 文件(用于設(shè)置單個應(yīng)用程序)。
單個頁面 可以在單個頁面中以聲明方式或編程方式設(shè)置緩存選項。還可將在配置文件中創(chuàng)建的緩存配置文件應(yīng)用于單個頁面。
用戶控件 可以在單個用戶控件中以聲明方式或編程方式設(shè)置緩存。對于在其他情況下不緩存的頁面內(nèi)容來說,這是一種簡便的緩存方法。
在 Web.config 文件中,有兩個頂級配置節(jié)可用于頁輸出緩存:OutputCacheSection 和 OutputCacheSettingsSection。
OutputCacheSection 節(jié)用于配置應(yīng)用程序范圍的設(shè)置,例如是啟用還是禁用頁輸出緩存。例如,您可以通過向 Web.config 文件中的 OutputCacheSection 添加 enableOutputCache="false" 來對整個應(yīng)用程序禁用頁輸出緩存。由于配置文件中的設(shè)置要優(yōu)先于單個頁面中的緩存設(shè)置,因此,示例設(shè)置將導(dǎo)致不使用輸出緩存。
OutputCacheSettingsSection 用于配置可由單個頁使用的配置文件和依賴項。例如,下面的代碼創(chuàng)建了一個名為 CacheProfile1 的 OutputCacheProfile,它將緩存實現(xiàn)頁 60 秒:
<outputCacheSettings>
<outputCacheProfiles>
<add name="CacheProfile1" duration="60" />
</outputCacheProfiles>
</outputCacheSettings>
Machine.config 文件的配置節(jié)與 Web.config 文件的配置節(jié)基本相同,而只有一點區(qū)別:即可以鎖定 Machine.config 文件中的配置設(shè)置,使任何級別的單個應(yīng)用程序都無法重寫這些配置設(shè)置。在宿主不希望單個應(yīng)用程序修改緩存配置時,可能有必要在共享宿主方案中使用此功能。有關(guān)更多信息,請參見如何:鎖定 ASP.NET 配置設(shè)置。
通過應(yīng)用在配置文件中定義的緩存配置文件,可以配置單個頁中的緩存。也可以在 @ OutputCache 指令中配置單個緩存屬性 (property),或者通過設(shè)置頁的類定義中的屬性 (attribute) 進行配置。有關(guān)更多信息,請參見 @ OutputCache 和設(shè)置頁的可緩存性。
通過設(shè)置用戶控件文件中的 @ OutputCache 指令,或設(shè)置控件類定義中的 PartialCachingAttribute 屬性,可以對用戶控件緩存進行配置。有關(guān)更多信息,請參見緩存 ASP.NET 頁的某些部分。
可以在 Web.config 文件中配置應(yīng)用程序的緩存 API。對于頁面輸出緩存,應(yīng)用程序宿主可以在 Machine.config 文件中設(shè)置配置屬性,并鎖定所有應(yīng)用程序的緩存配置設(shè)置。應(yīng)用程序緩存 API 在 CacheSection 中進行配置。例如,您可以使用下面的配置元素來禁用項過期:
<cache disableExpiration="true" />
還可以通過為屬性(如配置文件的 CacheSection 中的 DisableExpiration 和 DisableMemoryCollection 屬性)賦值的方式來指定其他應(yīng)用程序緩存 API 配置設(shè)置。