Поделиться через


Элемент 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

Ссылки

OutputCache

Основные понятия

Общие сведения о кэшировании в ASP.NET

Настройка обеспечения безопасности ASP.NET

Сценарии конфигурации ASP.NET

Другие ресурсы

Администрирование веб-сайта ASP.NET