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


Кэш ASP <>

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

Элемент <cache><asp> элемента задает следующие параметры кэша страниц Active Server (ASP) для служб IIS 7, которые могут управлять поведением производительности asp:

  • Атрибут diskTemplateCacheDirectory содержит имя каталога, который ASP использует для хранения скомпилированных шаблонов ASP на диске после переполнения кэша в памяти. Если каталог по умолчанию изменен, необходимо убедиться, что удостоверению процессов, выполняющих ASP, назначены права на полный доступ к новому каталогу.
  • Атрибут enableTypelibCache указывает, кэшируются ли библиотеки типов на сервере.
  • Значение атрибута maxDiskTemplateCacheFiles указывает максимальное количество скомпилированных шаблонов ASP, которые можно сохранить. (Каталог, в котором хранятся скомпилированные шаблоны, настраивается с помощью атрибута diskTemplateCacheDirectory .)
  • Атрибут scriptFileCacheSize указывает количество предварительно скомпилированных файлов скриптов для кэширования. Если задано значение 0, файлы сценариев не кэшируются. Если задано значение 4294967295, все запрошенные файлы скриптов кэшируются. Этот атрибут используется для настройки производительности в зависимости от объема доступной памяти и объема трафика файла скрипта.
  • Атрибут scriptEngineCacheMax указывает максимальное количество обработчиков сценариев, которые asp-страницы будут кэшировать в памяти.

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

Версия Примечания
IIS 10.0 Элемент <cache> не был изменен в IIS 10.0.
IIS 8,5 Элемент <cache> не был изменен в IIS 8.5.
IIS 8,0 Элемент <cache> не был изменен в IIS 8.0.
IIS 7,5 Элемент <cache> не был изменен в IIS 7.5.
IIS 7.0 Элемент <cache> элемента появился <asp> в IIS 7.0.
IIS 6,0 Элемент <cache> заменяет следующие свойства метабазы IIS 6.0:
  • AspDiskTemplateCacheDirectory
  • AspEnableTypelibCache
  • AspMaxDiskTemplateCacheFiles
  • AspScriptEngineCacheMax
  • AspScriptFileCacheSize

Настройка

Для поддержки и настройки приложений ASP на веб-сервере необходимо установить модуль ASP. Чтобы установить модуль ASP, выполните следующие действия.

Windows Server 2012 или Windows Server 2012 R2

  1. На панели задач щелкните Диспетчер сервера.
  2. В диспетчер сервера откройте меню Управление и выберите пункт Добавить роли и компоненты.
  3. В мастере добавления ролей и компонентов нажмите кнопку Далее. Выберите тип установки и нажмите кнопку Далее. Выберите целевой сервер и нажмите кнопку Далее.
  4. На странице Роли сервера разверните узел Веб-сервер (IIS),веб-сервер, узел Разработка приложений, а затем выберите ASP.
    Снимок экрана, на котором показан параметр A S P, выбранный для Windows Server 2012.
  5. Если появится диалоговое окно Добавление компонентов, необходимых для ASP? , нажмите кнопку Добавить компоненты. (Эта страница отображается только в том случае, если на сервере еще не установлена служба ролей расширений ISAPI.)
  6. На странице Роли сервера нажмите кнопку Далее.
  7. На странице Выбор компонентов нажмите кнопку Далее.
  8. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  9. На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

  1. На начальном экране переместите указатель в левый нижний угол, щелкните правой кнопкой мыши кнопку Пуск и выберите панель управления.

  2. В панель управления выберите Программы и компоненты, а затем — Включить или отключить компоненты Windows.

  3. Разверните узел Службы IIS, Веб-службы, Компоненты разработки приложений, а затем выберите ASP.
    Снимок экрана, на котором показан выбранный для Windows 8 S P.

    Примечание

    Роль расширения ISAPI будет выбрана, если она еще не установлена.

  4. Нажмите кнопку ОК.

  5. Щелкните Закрыть.

Windows Server 2008 или Windows Server 2008 R2

  1. На панели задач нажмите кнопку Пуск, выберите Администрирование, а затем диспетчер сервера.
  2. В области иерархии диспетчер сервера разверните узел Роли и выберите Веб-сервер (IIS).
  3. На панели Веб-сервер (IIS) прокрутите страницу до раздела Службы ролей и щелкните Добавить службы ролей.
  4. На странице Выбор служб ролеймастера добавления служб ролей выберите ASP.
    Снимок экрана: страница
  5. Если откроется диалоговое окно Добавление служб ролей, необходимых для ASP , щелкните Добавить необходимые службы ролей. (Эта страница отображается только в том случае, если на сервере еще не установлена служба ролей расширений ISAPI.)
    Снимок экрана: окно сообщения
  6. На странице Выбор служб ролей нажмите кнопку Далее.
  7. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  8. На странице Результаты нажмите кнопку Закрыть.

Windows Vista или Windows 7

  1. На панели задач нажмите кнопку Пуск, а затем панель управления.
  2. В панель управления выберите Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. Разверните узел Службы IIS, затем Веб-службы, а затем Функции разработки приложений.
  4. Выберите ASP и нажмите кнопку ОК.
    Снимок экрана, на котором показан выбранный для Windows 7 S P.

Инструкции

Настройка параметров кэша ASP для сервера

  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. На домашней панели сервера дважды щелкните ЭЛЕМЕНТ ASP.
    Снимок экрана: панель

  4. В области ASP разверните раздел Свойства кэширования , настройте нужные параметры, а затем нажмите кнопку Применить в области Действия .
    Снимок экрана: панель A S P. Свойства кэширования выбираются и разворачиваются.

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

Атрибуты

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

Указывает имя каталога, в котором ASP хранит скомпилированные шаблоны ASP при переполнении кэша в памяти.

Значение по умолчанию — %SystemDrive%\inetpub\temp\ASP Compiled Templates.
enableTypelibCache Дополнительный логический атрибут.

Указывает, кэшируются ли библиотеки типов.

Значение по умолчанию — true.
maxDiskTemplateCacheFiles Необязательный атрибут uint.

Указывает максимальное количество скомпилированных шаблонов ASP, которые можно хранить. Это значение является целым числом в диапазоне от 0 до 2147483647.

Значение по умолчанию — 2000.
scriptEngineCacheMax Необязательный атрибут uint.

Указывает максимальное число обработчиков сценариев, которые ASP-страницы будут кэшировать в памяти. Это значение является целым числом в диапазоне от 0 до 2147483647.

Значение по умолчанию — 250.
scriptFileCacheSize Необязательный атрибут uint.

Указывает количество предварительно скомпилированных файлов скриптов для кэширования. Если задано значение 0, файлы сценариев не кэшируются. Если задано значение 4294967295, все запрошенные файлы скриптов кэшируются. Этот атрибут используется для настройки производительности в зависимости от объема доступной памяти и объема трафика файла скрипта.

Значение по умолчанию — 500.

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

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

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

В следующем примере конфигурации задается каталог для кэша шаблонов ASP, максимальное число скомпилированных шаблонов ASP, которые могут храниться в 400, количество предварительно скомпилированных файлов скриптов для кэширования — 1000, а максимальное число обработчиков сценариев, которые ASP-страницы будут кэшировать в памяти, — 500.

<configuration>
   <system.webServer>
      <asp>
         <cache maxDiskTemplateCacheFiles="4000"
            diskTemplateCacheDirectory="%SystemDrive%\inetpub\temp\ASP Compiled Templates"
            scriptFileCacheSize="1000"
            scriptEngineCacheMax="500"
         />
      </asp>
   </system.webServer>
</configuration>

Пример кода

В следующих примерах кода каталог для кэша шаблонов ASP устанавливается, максимальное число скомпилированных шаблонов ASP, которые можно хранить в 400, количество предварительно скомпилированных файлов скриптов для кэширования — 1000, а максимальное число обработчиков сценариев, которые ASP-страницы будут кэшировать в памяти, — до 500.

AppCmd.exe

appcmd.exe set config -section:system.webServer/asp /cache.diskTemplateCacheDirectory:"%SystemDrive%\inetpub\temp\ASP Compiled Templates" /commit:apphost
appcmd.exe set config -section:system.webServer/asp /cache.maxDiskTemplateCacheFiles:"4000" /commit:apphost
appcmd.exe set config -section:system.webServer/asp /cache.scriptFileCacheSize:"1000" /commit:apphost
appcmd.exe set config -section:system.webServer/asp /cache.scriptEngineCacheMax:"500" /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 aspSection = config.GetSection("system.webServer/asp");

         ConfigurationElement cacheElement = aspSection.GetChildElement("cache");
         cacheElement["diskTemplateCacheDirectory"] = @"%SystemDrive%\inetpub\temp\ASP Compiled Templates";
         cacheElement["maxDiskTemplateCacheFiles"] = 4000;
         cacheElement["scriptFileCacheSize"] = 1000;
         cacheElement["scriptEngineCacheMax"] = 500;

         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 aspSection As ConfigurationSection = config.GetSection("system.webServer/asp")

      Dim cacheElement As ConfigurationElement = aspSection.GetChildElement("cache")
      cacheElement("diskTemplateCacheDirectory") = "%SystemDrive%\inetpub\temp\ASP Compiled Templates"
      cacheElement("maxDiskTemplateCacheFiles") = 4000
      cacheElement("scriptFileCacheSize") = 1000
      cacheElement("scriptEngineCacheMax") = 500

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var aspSection = adminManager.GetAdminSection("system.webServer/asp", "MACHINE/WEBROOT/APPHOST");

var cacheElement = aspSection.ChildElements.Item("cache");
cacheElement.Properties.Item("diskTemplateCacheDirectory").Value = "%SystemDrive%\\inetpub\\temp\\ASP Compiled Templates";
cacheElement.Properties.Item("maxDiskTemplateCacheFiles").Value = 4000;
cacheElement.Properties.Item("scriptFileCacheSize").Value = 1000;
cacheElement.Properties.Item("scriptEngineCacheMax").Value = 500;

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set aspSection = adminManager.GetAdminSection("system.webServer/asp", "MACHINE/WEBROOT/APPHOST")

Set cacheElement = aspSection.ChildElements.Item("cache")
cacheElement.Properties.Item("diskTemplateCacheDirectory").Value = "%SystemDrive%\inetpub\temp\ASP Compiled Templates"
cacheElement.Properties.Item("maxDiskTemplateCacheFiles").Value = 4000
cacheElement.Properties.Item("scriptFileCacheSize").Value = 1000
cacheElement.Properties.Item("scriptEngineCacheMax").Value = 500

adminManager.CommitChanges()