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

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

Элемент <profiles><caching> элемента указывает профиль, используемый для кэширования выходных данных.

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

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

Настройка

Элемент <profiles><caching> элемента включен в установку 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. На панели Главная прокрутите страницу до пункта Кэширование выходных данных, а затем дважды щелкните кэширование выходных данных.
    Снимок экрана: окно диспетчера I IS. На панели main выбрано кэширование выходных данных.

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

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

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

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

Атрибуты

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

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

Элемент Описание
add Необязательный элемент.

Добавляет профиль кэширования выходных данных в коллекцию профилей кэширования выходных данных.
clear Необязательный элемент.

Удаляет все ссылки на профили кэширования выходных данных из коллекции профилей кэширования выходных данных.
remove Необязательный элемент.

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

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

В следующем примере конфигурации включается кэширование в пользовательском режиме и кэширование в режиме ядра, оба из которых включены по умолчанию в 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()