Элемент outputCache для элемента caching (схема параметров ASP.NET)
Задает параметры кэша вывода на уровне приложения.
<outputCache enableOutputCache="true|false"
enableFragmentCache="true|false"
sendCacheControlHeader="true|false"
omitVaryStar="true|false"
defaultProvider="AspNetInternalProvider">
</outputCache>
Атрибуты и элементы
В следующих разделах описаны атрибуты, дочерние и родительские элементы.
Атрибуты
Атрибут |
Описание |
---|---|
enableOutputCache |
Необязательный атрибут элемента Boolean. Включает/отключает кэширование выходных данных страницы. Если атрибут отключен, кэширование страниц не выполняется, несмотря на программные или декларативные параметры. Значение по умолчанию – true. |
enableFragmentCache |
Необязательный атрибут элемента Boolean. Включает/отключает кэширование фрагмента приложения. Если атрибут отключен, кэширование страниц не выполняется, несмотря на используемую директиву @ OutputCache или профиль кэша. Включает заголовок cache-control, указывающий, что вышестоящие прокси-серверы, а также клиенты обозревателей не должны предпринимать попытку кэширования выходных данных страниц. Значение по умолчанию – false. |
sendCacheControlHeader |
Необязательный атрибут элемента Boolean. Получает или задает значение, отражающее отправку заголовка cache-control:private модулем выходного кэша по умолчанию. Значение по умолчанию – false. |
omitVaryStar |
Необязательный атрибут элемента Boolean. Включает/отключает отправку ответного заголовка HTTP "Vary: *". Заголовок "Vary: *" отправляется для кэшированных страниц; значение атрибута по умолчанию — "false". Значение по умолчанию – false. |
defaultProvider |
Необязательный строковый атрибут. Получает или задает поставщика кэша вывода по умолчанию. Значение по умолчанию – "AspNetInternalProvider". Это кэш в памяти, предоставляемый ASP.NET. |
Дочерние элементы
Элемент |
Описание |
---|---|
providers |
Необязательный дочерний элемент, который может использоваться для настройки пользовательских поставщиков кэша вывода. |
Родительские элементы
Элемент |
Описание |
---|---|
configuration |
Обязательный корневой элемент любого файла конфигурации, используемого средой CLR и приложениями .NET Framework. |
system.web |
Указывает корневой элемент для параметров конфигурации ASP.NET в файле конфигурации. Содержит конфигурационные элементы, которые настраивают веб-приложения ASP.NET, и управляют поведением этих приложений. |
caching |
Настраивает параметры кэширования для веб-приложения. |
Заметки
Настройки по умолчанию
Следующий элемент 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-содержимого поставщики кэша вывода могут использовать любой механизм. HTML-содержимое может храниться на локальных или удаленных дисках, в распределенном хранилище и в распределенных модулях кэширования.
Предоставление возможности создания поставщиков кэша вывода означает, что разработчики могут создавать более сложные и интеллектуальные стратегии кэширования выходных данных для веб-сайтов. Например, можно создать поставщик кэша вывода, который удерживает 10 основных страниц сайта в памяти, а страницы, которые создают меньший трафик, кэшируются на диск. Или можно кэшировать все изменяющиеся комбинации для отображаемой веб-страницы и использовать распределенный кэш, чтобы освободить ресурсы памяти интерфейсных веб-серверов.
Для создания пользовательского поставщика кэша вывода необходимо создать класс, производный от типа OutputCacheProvider. Затем можно настроить поставщик в файле Web.config, используя подраздел providers элемента outputCache .
По умолчанию в ASP.NET все HTTP-ответы, отображенные страницы и элементы управления используют кэш вывода в памяти, как показано в предыдущем примере (где для атрибута defaultProvider задано значение AspNetInternalProvider). Чтобы изменить поставщик кэша вывода, используемый по умолчанию для веб-приложения, необходимо в атрибуте defaultProvider указать имя другого поставщика.
Кроме того, можно указать разных поставщиков кэша вывода как для отдельных элементов управления, так и для отдельных запросов. Самый простой способ указания другого поставщика кэша вывода для отдельных пользовательских веб-элементов управления — декларативно объявить имя поставщика с помощью нового атрибута providerName в директиве Page или Control, как показано в следующем примере.
<%@ OutputCache Duration="60" VaryByParam="None"
providerName="DiskCache" %>
Можно указать другого поставщика кэша вывода для HTTP-запроса и переопределить метод GetOutputCacheProviderName в файле Global.asax, чтобы программно указать, какой поставщик используется для конкретного запроса.
См. также
Задачи
Пошаговое руководство. Отключение параметров конфигурации ASP.NET
Ссылки
Основные понятия
Общие сведения о кэшировании в ASP.NET
Настройка обеспечения безопасности ASP.NET