Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Общие сведения
Элемент <applicationPools> содержит параметры конфигурации для всех пулов приложений, работающих на сервере iis 7 или более поздней версии. Пул приложений определяет группу из одного или нескольких рабочих процессов, настроенных с общими параметрами, которые обслуживают запросы к одному или нескольким приложениям, назначенным данному пулу приложений. Так как пулы приложений позволяют набору веб-приложений совместно использовать один или несколько аналогично настроенных рабочих процессов, они предоставляют удобный способ изолировать набор веб-приложений от других веб-приложений на серверном компьютере. Границы процесса разделяют каждый рабочий процесс; Поэтому проблемы с приложениями в одном пуле приложений не влияют на веб-сайты или приложения в других пулах приложений. Пулы приложений значительно повышают надежность и управляемость веб-инфраструктуры.
Вы можете использовать пул приложений по умолчанию, предоставляемый СЛУЖБАми IIS при установке, или создать собственный пул приложений. На сервере IIS 7 и более поздних версий можно запустить любое количество пулов приложений, хотя это может повлиять на производительность сервера. Пулы приложений могут содержать один или несколько рабочих процессов. Каждый рабочий процесс представляет работу, выполняемую для веб-сайта, веб-приложения или веб-службы. Вы можете создать веб-сад, развердив выполнение нескольких рабочих процессов в одном пуле приложений.
В IIS 7 и более поздних версиях каждый пул приложений использует один из двух режимов интеграции .NET для запуска ASP.NET приложений: интегрированный или классический. Режим интеграции .NET, определенный для пула приложений, определяет, как IIS обрабатывает входящий запрос к сайтам, приложениям и веб-службам, работающим в этом пуле приложений.
- Интегрированный режим позволяет IIS обрабатывать запросы в пуле приложений с помощью интегрированного конвейера IIS 7 и более поздних версий. Это позволяет ASP.NET модулям участвовать в обработке запросов IIS независимо от типа запрошенного ресурса. Использование режима интеграции делает доступными функции конвейера запросов ASP.NET 2.0 для запросов статического содержимого, а также ASP, PHP и других типов контента. По умолчанию пулы приложений IIS 7 и более поздних версий выполняются в этом режиме.
- Классический режим использует конвейер обработки IIS 6.0 для размещения ASP.NET приложений. В этом режиме запросы сначала обрабатываются с помощью модулей IIS 7 и более поздних версий, а ASP.NET запросы дополнительно обрабатываются aspnet_isapi.dll. Конвейер обработки ASP.NET отделен от конвейера обработки IIS 7 и более поздних версий, а функции конвейера обработки запросов ASP.NET недоступны другим типам ресурсов. Это также означает, что запрос ASP.NET должен проходить через модули проверки подлинности и авторизации в обеих моделях процессов. Хотя это не так эффективно, как интегрированный режим, он позволяет запускать приложения, разработанные с помощью ASP.NET версии 1.1, на сервере IIS 7 и более поздних версий без изменения приложения для запуска в режиме интеграции.
Новые возможности в IIS 7.5 и более поздних версий
Начиная с IIS 7.5, вы можете настроить автоматический запуск приложения с помощью атрибутов <add>managedRuntimeLoader, CLRConfigFile и startMode элемента . Эти атрибуты настраивают соответственно имя управляемой библиотеки DLL, которая обеспечивает загрузку среды выполнения для приложения, файл конфигурации среды CLR для приложения и тип запуска для приложения.
Кроме того, новый тип в IIS 7.5 и более поздних версиях — это новый ApplicationPoolIdentity тип для атрибута <processModel>identityType элемента . Этот новый тип удостоверения теперь является идентификатором процесса по умолчанию для приложений и позволяет настроить безопасность для областей содержимого, чтобы разрешить доступ для определенного пула приложений. Для этого необходимо задать безопасность, используя имя пула приложений, используя синтаксис IIS AppPool\DefaultAppPool. Это удостоверение создается динамически, тем самым значительно уменьшая зону атак на сервере.
Совместимость
| Версия | Примечания |
|---|---|
| IIS 10.0 | Элемент <applicationPools> не был изменен в IIS 10.0. |
| IIS 8,5 | Элемент <applicationPools> не был изменен в IIS 8.5. |
| IIS 8,0 | Элемент <applicationPools> не был изменен в IIS 8.0. |
| IIS 7,5 | Элемент <add><applicationPools> элемента был обновлен в IIS 7.5, чтобы включить атрибуты, которые позволяют предварительно загружать приложения с помощью атрибутов managedRuntimeLoader, CLRConfigFile и startMode , а также запускать приложения с помощью нового ApplicationPoolIdentity. |
| IIS 7.0 | Элемент <applicationPools> появился в IIS 7.0. |
| IIS 6,0 | Элемент <applicationPools> заменяет объект метабазы IIsApplicationPools IIS 6.0. |
Настройка
Коллекция <applicationPools> включена в установку iis 7 и более поздних версий по умолчанию.
Инструкции
Создание пула приложений
Откройте диспетчер служб 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.
В области Подключения разверните имя сервера и щелкните Пулы приложений.
В области Действия щелкните Добавить пул приложений....
В диалоговом окне Добавление пула приложений введите имя пула приложений в поле Имя: , в раскрывающемся списке платформа .NET Framework версия: выберите версию платформа .NET Framework, используемой сайтом или приложением, в раскрывающемся списке Режим управляемого конвейера: выберите Интегрированная или Классическая, а затем нажмите кнопку ОК.
Настройка пула приложений для существующего сайта или приложения
- В области Подключения разверните узел Сайты, а затем перейдите к веб-сайту или приложению, которые вы хотите добавить в пул приложений.
- В области Действия щелкните Дополнительные параметры...
- В разделе Общие диалогового окна Дополнительные параметры щелкните запись Пул приложений и нажмите кнопку с многоточием.
- В диалоговом окне Выбор пула приложений выберите пул приложений в раскрывающемся списке Пул приложений: нажмите кнопку ОК, а затем снова нажмите кнопку ОК .
Конфигурация
Элемент <applicationPools> содержит коллекцию <add> элементов. Каждый элемент в коллекции настраивает пул приложений, работающий в IIS 7 и более поздних версиях. Как минимум, каждый <add> элемент содержит атрибут имени , который идентифицирует пул приложений для графического интерфейса пользователя и средств управления командной строки. Элемент <add> содержит дочерние элементы, которые настраивают модель процесса, ЦП и параметры перезапуска для пула приложений.
Элемент <applicationPools> также содержит <applicationPoolDefaults> элемент , который определяет параметры по умолчанию для всех пулов приложений на сервере IIS 7 и более поздних версий. Чтобы изменить параметры пула приложений по умолчанию на сервере, можно изменить <applicationPoolDefaults> элемент . При создании нового пула приложений параметры конфигурации для этого пула приложений переопределяют значения по умолчанию, заданные в элементе <applicationPoolDefaults> .
Атрибуты
Отсутствует.
Дочерние элементы
| Элемент | Описание |
|---|---|
add |
Добавляет пул приложений в раздел applicationPools. |
applicationPoolDefaults |
Обязательный строковый атрибут. Настраивает параметры по умолчанию для всех пулов приложений в разделе applicationPools. |
Образец конфигурации
В следующем примере конфигурации пул приложений <add> и <applicationPools> элементы используются для определения стандартных пулов приложений и значений по умолчанию для IIS.
<applicationPools>
<add name="DefaultAppPool" />
<add name="Classic .NET AppPool" managedPipelineMode="Classic" />
<applicationPoolDefaults>
<processModel identityType="NetworkService" />
</applicationPoolDefaults>
</applicationPools>
Пример кода
В следующих примерах добавляется пул приложений с именем Contoso и для режима управляемого конвейера устанавливается значение Интегрированный.
AppCmd.exe
appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso',autoStart='True',managedPipelineMode='Integrated']" /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 applicationPoolsSection = config.GetSection("system.applicationHost/applicationPools");
ConfigurationElementCollection applicationPoolsCollection = applicationPoolsSection.GetCollection();
ConfigurationElement addElement = applicationPoolsCollection.CreateElement("add");
addElement["name"] = @"Contoso";
addElement["autoStart"] = true;
addElement["managedPipelineMode"] = @"Integrated";
applicationPoolsCollection.Add(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 applicationPoolsSection As ConfigurationSection = config.GetSection("system.applicationHost/applicationPools")
Dim applicationPoolsCollection As ConfigurationElementCollection = applicationPoolsSection.GetCollection
Dim addElement As ConfigurationElement = applicationPoolsCollection.CreateElement("add")
addElement("name") = "Contoso"
addElement("autoStart") = True
addElement("managedPipelineMode") = "Integrated"
applicationPoolsCollection.Add(addElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools",
"MACHINE/WEBROOT/APPHOST");
var applicationPoolsCollection = applicationPoolsSection.Collection;
var addElement = applicationPoolsCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "Contoso";
addElement.Properties.Item("autoStart").Value = true;
addElement.Properties.Item("managedPipelineMode").Value = "Integrated";
applicationPoolsCollection.AddElement(addElement);
adminManager.CommitChanges();
VBScript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools","MACHINE/WEBROOT/APPHOST")
Set applicationPoolsCollection = applicationPoolsSection.Collection
Set addElement = applicationPoolsCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "Contoso"
addElement.Properties.Item("autoStart").Value = True
addElement.Properties.Item("managedPipelineMode").Value = "Integrated"
applicationPoolsCollection.AddElement(addElement)
adminManager.CommitChanges()