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


Добавление профилей <кэширования>

Общие сведения

Элемент <add><profiles> элемента добавляет профиль кэширования выходных данных в коллекцию профилей кэширования выходных данных.

Совместимость

Версия Примечания
IIS 10.0 Элемент <add> не был изменен в IIS 10.0.
IIS 8,5 Элемент <add> не был изменен в IIS 8.5.
IIS 8,0 Элемент <add> не был изменен в IIS 8.0.
IIS 7,5 Элемент <add> не был изменен в IIS 7.5.
IIS 7.0 Элемент <add> элемента появился <profiles> в IIS 7.0.
IIS 6,0 Н/Д

Настройка

Элемент <add><profiles> элемента включен в установку IIS 7 по умолчанию.

Инструкции

Настройка кэширования выходных данных страниц

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. В области Подключения перейдите к подключению, сайту, приложению или каталогу, для которого требуется настроить кэширование выходных данных страниц.

  3. На панели Главная прокрутите страницу до пункта Кэширование выходных данных, а затем дважды щелкните Кэширование выходных данных.
    Снимок экрана: панель

  4. В области Действия нажмите кнопку Добавить...

  5. В диалоговом окне Добавление правила кэша введите расширение имени файла, которое требуется кэшировать, в поле Расширение имени файла , а затем выберите параметр Кэширование в пользовательском режиме , кэширование в режиме ядра или и то, и другое.

  6. Выберите параметры, которые нужно использовать для кэширования, и нажмите кнопку ОК.
    Снимок экрана: диалоговое окно

Конфигурация

Атрибуты

Атрибут Описание
duration Необязательный атрибут timeSpan.

Указывает время кэширования страницы или пользовательского элемента управления (в секундах).

Значение по умолчанию — 00:00:30.
extension Обязательный строковый атрибут.

Указывает расширение имени файла для файлов, которые требуется кэшировать.
kernelCachePolicy Необязательный атрибут перечисления.

Настраивает политику кэширования ядра.

Атрибут kernelCachePolicy может иметь одно из следующих значений. Значение по умолчанию — DontCache.
Значение Описание
DontCache Содержимое не кэшируется.

Числовое значение равно 0.
CacheUntilChange Содержимое кэшируется только до изменения содержимого.

Числовое значение равно 1.
CacheForTimePeriod Содержимое кэшируется в течение времени, указанного атрибутом duration.

Числовое значение равно 2.
DisableCache Кэш отключен, и кэширование не выполняется.

Числовое значение равно 3.
location Необязательный атрибут перечисления.

Указывает допустимые значения для управления расположением кэшируемого вывода ответа HTTP для ресурса.

Атрибут location может быть одним из следующих возможных значений. Значение по умолчанию — Server.
Значение Описание
Any Кэш вывода может располагаться на клиенте браузера (где был сформирован запрос), на прокси-сервере (или любом другом сервере), участвующем в запросе, или на сервере, где обрабатывался запрос.

Числовое значение равно 0.
Client Кэш вывода расположен на клиенте браузера, где сформирован запрос.

Числовое значение равно 1.
Downstream Кэш вывода может храниться на любом устройстве с поддержкой кэширования HTTP 1.1, кроме исходного сервера. Сюда входят прокси-серверы и клиент, сформировавший запрос.

Числовое значение равно 2.
Server Кэш вывода расположен на веб-сервере, обрабатывающем запрос.

Числовое значение равно 3.
None Кэш вывода отключен для запрашиваемой страницы.

Числовое значение равно 4.
ServerAndClient Кэш вывода может храниться только на исходном сервере или на запрашивающем клиенте. Кэширование ответов на прокси-серверах запрещено.

Числовое значение равно 5.
policy Необязательный атрибут перечисления.

Настраивает политику кэширования выходных данных.

Атрибут политики может быть одним из следующих возможных значений. Значение по умолчанию — DontCache.
Значение Описание
DontCache Содержимое не кэшируется.

Числовое значение равно 0.
CacheUntilChange Содержимое кэшируется только до изменения содержимого.

Числовое значение равно 1.
CacheForTimePeriod Содержимое кэшируется в течение времени, указанного атрибутом duration.

Числовое значение равно 2.
DisableCache Кэш отключен, и кэширование не выполняется.

Числовое значение равно 3.
varyByHeaders Необязательный строковый атрибут.

Указывает разделенный точкой с запятой список заголовков HTTP, используемых для изменения выходного кэша. Если для этого атрибута задано несколько заголовков, выходной кэш содержит разные версии запрошенного документа для каждой комбинации указанных заголовков.
varyByQueryString Необязательный строковый атрибут.

Указывает разделенный точкой с запятой список строк, используемых для изменения выходного кэша. По умолчанию эти строки соответствуют значению строки запроса, отправленному с атрибутами метода GET , или параметру, отправленному с помощью метода POST . Если для этого атрибута задано несколько параметров, выходной кэш содержит разные версии запрошенного документа для каждой комбинации указанных параметров. Возможные значения: none, звездочка (*) и любая допустимая строка запроса или имя параметра POST .

Дочерние элементы

Отсутствует.

Образец конфигурации

В следующем примере конфигурации включается кэширование в пользовательском режиме и кэширование в режиме ядра, которые включены по умолчанию в IIS 7.0. Он также использует элемент, <add> содержащийся в элементе <profiles> , для включения кэширования выходных данных для файлов с расширением ASP-имени. Он также использует атрибут политики для вывода кэша страницы до тех пор, пока она не изменится; Он делает то же самое для кэширования ядра с помощью атрибута kernelCachePolicy .

<configuration>
   <system.webServer>
      <caching enabled="true" enableKernelCache="true">
         <profiles>
            <add extension=".asp" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" />
         </profiles>
      </caching>
   </system.webServer>
</configuration>

В следующем примере кода устанавливается максимальный размер выходного кэша в 1 гигабайт, а максимальный размер ответа, который может храниться в выходном кэше, составляет 512 килобайт.

<configuration>
   <system.webServer>
      <caching enabled="true" enableKernelCache="true" maxCacheSize="1000" maxResponseSize="512000"/>
   </system.webServer>
</configuration>

Пример кода

В следующих примерах настраивается кэширование выходных данных страницы для файлов с расширением ASP и настройка IIS для кэширования в пользовательском режиме и режиме ядра до тех пор, пока asp-файлы не изменятся.

AppCmd.exe

appcmd.exe set config -section:system.webServer/caching /+"profiles.[extension='asp',policy='CacheUntilChange',kernelCachePolicy='CacheUntilChange']" /commit:apphost

Примечание

При использовании AppCmd.exe для настройки этих параметров для параметра apphostфиксации необходимо задать значение . Это зафиксирует параметры конфигурации в соответствующем разделе расположения в файле ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {
   private static void Main() {
      using(ServerManager serverManager = new ServerManager()) { 
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection cachingSection = config.GetSection("system.webServer/caching");
         ConfigurationElementCollection profilesCollection = cachingSection.GetCollection("profiles");

         ConfigurationElement addElement = profilesCollection.CreateElement("add");
         addElement["extension"] = @"asp";
         addElement["policy"] = @"CacheUntilChange";
         addElement["kernelCachePolicy"] = @"CacheUntilChange";
         profilesCollection.AddAt(0, addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim cachingSection As ConfigurationSection = config.GetSection("system.webServer/caching")
      Dim profilesCollection As ConfigurationElementCollection = cachingSection.GetCollection("profiles")
      Dim addElement As ConfigurationElement = profilesCollection.CreateElement("add")
      addElement("extension") = "asp"
      addElement("policy") = "CacheUntilChange"
      addElement("kernelCachePolicy") = "CacheUntilChange"
      profilesCollection.AddAt(0, addElement)
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var cachingSection = adminManager.GetAdminSection("system.webServer/caching", "MACHINE/WEBROOT/APPHOST");
var profilesCollection = cachingSection.ChildElements.Item("profiles").Collection;

var addElement = profilesCollection.CreateNewElement("add");
addElement.Properties.Item("extension").Value = "asp";
addElement.Properties.Item("policy").Value = "CacheUntilChange";
addElement.Properties.Item("kernelCachePolicy").Value = "CacheUntilChange";
profilesCollection.AddElement(addElement, 0);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set cachingSection = adminManager.GetAdminSection("system.webServer/caching", "MACHINE/WEBROOT/APPHOST")
Set profilesCollection = cachingSection.ChildElements.Item("profiles").Collection

Set addElement = profilesCollection.CreateNewElement("add")
addElement.Properties.Item("extension").Value = "asp"
addElement.Properties.Item("policy").Value = "CacheUntilChange"
addElement.Properties.Item("kernelCachePolicy").Value = "CacheUntilChange"
profilesCollection.AddElement addElement, 0

adminManager.CommitChanges()