Элемент processModel (схема параметров ASP.NET)

Настраивает параметры модели процессов ASP.NET для веб-сервера Microsoft Internet Information Services (IIS). Раздел processModel может быть задан только внутри файла Machine.config. Данный раздел влияет на все выполняемые на сервере приложения ASP.NET.

Предупреждающее замечаниеВнимание

Изменения элемента processModel вступают в силу только после перезапуска рабочего процесса, а не сразу после изменения параметра, как это происходит в случае с другими элементами конфигурации.Дополнительные сведения см. в подразделе "Примечания" далее в этом разделе.

<processModel 
   enable="true|false"
   timeout="hrs:mins:secs|Infinite" 
   idleTimeout="hrs:mins:secs|Infinite"
   shutdownTimeout="hrs:mins:secs|Infinite"
   requestLimit="num|Infinite"
   requestQueueLimit="num|Infinite"
   restartQueueLimit="num|Infinite"
   memoryLimit="percent"
   webGarden="true|false"
   cpuMask="num"
   userName="<username>"
   password="<secure password>"
   logLevel="All|None|Errors"
   clientConnectedCheck="hrs:mins:secs|Infinite"
   comAuthenticationLevel="Default|None|Connect|Call| 
               Pkt|PktIntegrity|PktPrivacy"
   comImpersonationLevel="Default|Anonymous|Identify|
               Impersonate|Delegate"
   responseDeadlockInterval="hrs:mins:secs|Infinite"
   responseRestartDeadlockInterval="hrs:mins:secs|Infinite"
   autoConfig="true|false"
   maxWorkerThreads="num"
   maxIoThreads="num"
   minWorkerThreads="num"
   minIoThreads="num"
   serverErrorMessageFile="" 
   pingFrequency="Infinite" 
   pingTimeout="Infinite" 
   maxAppDomains="2000"
/>

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Атрибут

Описание

autoConfig

Указывает, следует ли автоматически настраивать следующие параметры для достижения оптимальной производительности на основе конфигурации компьютера.

Значения заданы в соответствии с данными статьи базы знаний, находящейся по адресу https://support.microsoft.com/?id=821268.

Этот атрибут не влияет на клиентские приложения .NET, он касается только приложений ASP.NET.

Атрибут autoConfig может принимать одно из следующих значений.

ТерминОпределение
True Указывает, что ASP.NET автоматически настраивает атрибуты в ранее приведенном списке, чтобы достичь оптимальной производительности на основе конфигурации компьютера.
False Указывает, что ASP.NET необходимо использовать явно определенные значения для атрибутов в приведенном ранее списке.

По умолчанию в файле Machine.config используется значение True до тех пор, пока имеется ранее существовавшая конфигурация.

clientConnectedCheck

Указывает продолжительность нахождения запроса в очереди до проверки ASP.NET подключения клиента.

Значение по умолчанию — "00:00:05" (5 секунд).

comAuthenticationLevel

Указывает уровень проверки подлинности для безопасности DCOM.

Атрибут comAuthenticationLevel может принимать одно из следующих значений.

ЗначениеОписание
Call Указывает, что DCOM проверяет подлинность учетных данных клиента при получении сервером запроса в начале каждого вызова удаленной процедуры.
Connect Указывает, что DCOM проверяет подлинность учетных данных клиента только в момент его подключения к серверу.
Default Указывает, что DCOM определяет уровень проверки подлинности с помощью стандартного алгоритма безопасности.
None Указывает отсутствие проверки подлинности.
Pkt Указывает, что DCOM проверяет, были ли все полученные данные отправлены ожидаемым клиентом.При передаче датаграмм всегда используется проверка подлинности Pkt.
PktIntegrity Указывает, что DCOM проверяет подлинность и неизменность данных, переданных между клиентом и сервером.
PktPrivacy Указывает, что DCOM проверяет подлинность всех предыдущих уровней и выполняет шифрование значения аргумента каждого вызова удаленной процедуры.

По умолчанию используется значение Connect.

comImpersonationLevel

Задает уровень проверки подлинности для безопасности COM.

Атрибут comImpersonationLevel может принимать одно из следующих значений.

ЗначениеОписание
Anonymous Клиент является анонимным по отношению к серверу.Сервер может выступить вместо клиента, однако в этом случае маркер заимствования прав не будет содержать сведений.Anonymous не поддерживается на платформе .NET Framework версии 1.1.
Default Указывает, что DCOM определяет уровень олицетворения с помощью стандартного алгоритма безопасности.
Delegate Указывает, что серверный процесс может олицетворять контекст безопасности клиента, действуя от его лица.Кроме того, серверный процесс может создавать исходящие вызовы других серверов, действуя от лица клиента и используя маскировку.Для доступа к локальным и удаленным ресурсам в качестве клиента сервер может использовать его контекст безопасности.При использовании данного уровня олицетворения маркер олицетворения может быть передан между любым числом компьютеров.
Identify Указывает, что сервер может получить удостоверение клиента.Сервер может выступать вместо клиента для проверки списков управления доступом, однако не получает доступа к системным объектам от имени клиента.
Impersonate Указывает, что серверный процесс может олицетворять контекст безопасности клиента, действуя от его лица.Данный уровень олицетворения может использоваться для доступа к локальным ресурсам, таким как файлы.При использовании данного уровня олицетворения соответствующий маркер может передаваться в пределах одного компьютера.

По умолчанию используется значение Impersonate.

cpuMask

Указывает, какие процессоры многопроцессорного сервера являются подходящими для выполнения процессов ASP.NET. Это значение определяет побитовый шаблон, задающий процессоры, подходящие для выполнения потоков ASP.NET. Например, шестнадцатеричное значение cpuMask 0x0d представляет битовый шаблон 1101. На компьютере с четырьмя процессорами это означает, что процессы ASP.NET могут быть запланированы на процессорах 0, 2 и 3, но не на процессоре 1. ASP.NET запускает один рабочий процесс для каждого квалифицированного ЦП. Если атрибут webGarden имеет значение true, то при его использовании число рабочих процессов не может превышать число предназначенных для их выполнения процессоров. Наибольшее число рабочих процессов равно числу процессоров. Если атрибут webGarden имеет значение false, он игнорируется, и выполняется только один рабочий процесс. Это поведение установлено по умолчанию.

По умолчанию используется значение "0xffffffff".

enable

Указывает, включена ли модель процессов.

Атрибут enable может принимать одно из следующих значений.

ЗначениеОписание
True Указывает, что модель процессов включена.
False Указывает, что модель процессов не включена.

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

idleTimeout

Задает период неактивности в формате чч:мин:сек, после которого при использовании ASP.NET рабочий процесс автоматически прекращается.

По умолчанию используется значение Infinite.

logLevel

Указывает типы событий для записи в журнал событий.

Атрибут logLevel может принимать одно из следующих значений.

ЗначениеОписание
All Указывает, что все события процесса записаны.
Errors Задает регистрацию только неожиданных выключений, а также выключений, вызванных ограничением памяти или взаимной блокировкой.
None Указывает на отсутствие записанных событий.

По умолчанию используется значение Errors.

maxAppDomains

Указывает максимальное число доменов приложений, которые допускаются в одном процессе.

Значение этого атрибута может быть меньше или равно 2000.

По умолчанию используется значение 2000.

maxIoThreads

Задает для одного процессора наибольшее количество потоков ввода/вывода, используемых для процесса. Например, если это значение равно 25 на однопроцессорном сервере, то ASP.NET использует API среды выполнения для установки ограничения процесса 25. На двухпроцессорном сервере этот предел равен 50. Значение этого атрибута не может быть меньше значения атрибута minFreeThread в секции конфигурации httpRuntime.

Сведения о типах потоков см. в разделе "Описание потоков" главы Повышение производительности ASP.NET.

Значения этого атрибута находятся в диапазоне от 5 до 100.

По умолчанию используется значение 20.

maxWorkerThreads

Задает для одного процессора наибольшее количество рабочих потоков, используемых для процесса в ЦП. Например, если это значение равно 25 на однопроцессорном сервере, то ASP.NET использует API среды выполнения для установки ограничения процесса 25. На двухпроцессорном сервере этот предел равен 50. Значение этого атрибута не может быть меньше значения атрибута minFreeThread в секции конфигурации httpRuntime.

Сведения о типах потоков см. в разделе "Описание потоков" главы Повышение производительности ASP.NET.

Значения этого атрибута находятся в диапазоне от 5 до 100.

По умолчанию используется значение 20.

memoryLimit

Задает наибольший разрешенный объем памяти (в процентах от общей системной памяти), который при использовании ASP.NET может быть предоставлен рабочему процессу перед запуском нового процесса и перераспределением существующих ресурсов.

По умолчанию используется значение 60.

minIoThreads

Задает для одного процессора наименьшее количество потоков ввода/вывода, используемых для процесса. См. также описание свойства maxIoThreads.

Сведения о типах потоков см. в разделе "Описание потоков" главы Повышение производительности ASP.NET.

По умолчанию используется значение 1.

minWorkerThreads

Задает для одного процессора наименьшее количество рабочих потоков, используемых для процесса в ЦП. См. также описание свойства maxWorkerThreads.

Сведения о типах потоков см. в разделе "Описание потоков" главы Повышение производительности ASP.NET.

По умолчанию используется значение 1.

password

При наличии этого атрибута (и атрибута userName) рабочий процесс выполняется с указанными учетными данными Microsoft Windows. Дополнительные сведения о не требующих пароля специальных именах System и Machine, а также о хранении в системном реестре зашифрованных учетных данных рабочего процесса см. в описании атрибута userName.

ПримечаниеПримечание
Существуют угрозы безопасности, связанные с хранением учетных данных в файле конфигурации.Дополнительные сведения см. в разделе "Сохранение имени пользователя и пароля в системном реестре" далее в этом документе.

По умолчанию используется значение AutoGenerate.

pingFrequency

Задает интервал времени в стандартном формате модели процессов (чч:мин:сек), в течение которого расширение ISAPI опрашивает рабочий процесс, чтобы убедиться в его выполнении. Если рабочий процесс не выполняется за указанный в атрибуте pingTimeout интервал времени, то он перезапускается.

По умолчанию используется значение Infinite.

pingTimeout

Задает интервал времени в стандартном формате модели процессов (чч:мин:сек), после которого зависший рабочий процесс перезапускается. Расширения ISAPI отправляют команду ping рабочему процессу в интервале pingFrequency. Если рабочий процесс не отвечает в течение интервала pingTimeout, процесс перезапускается.

По умолчанию используется значение Infinite.

requestLimit

При использовании ASP.NET задает разрешенное число запросов перед тем, как будет запущен новый рабочий процесс вместо текущего.

По умолчанию используется значение Infinite.

requestQueueLimit

При использовании ASP.NET задает наибольшее разрешенное число запросов в очереди перед возвратом для новых запросов сообщения "503 – Server Too Busy" ("503 — Сервер перегружен").

По умолчанию используется значение 5000.

responseDeadlockInterval

Задает интервал времени в стандартном формате модели процессов (чч:мин:сек), после которого будет выполнен перезапуск процесса при соблюдении следующих условий:

  • Имеются запросы, поставленные в очередь.

  • Не был получен ответ за указанный интервал времени.

Значение по умолчанию — "0:03:00" (3 минуты).

responseRestartDeadlockInterval

Этот атрибут больше не используется ASP.NET и задается только в целях совместимости. Ошибка настройки не возникнет, если атрибут уже присутствовал в файле конфигурации. Теперь вся обработка события взаимной блокировки управляется атрибутом responseDeadlockInterval.

Значение по умолчанию — "0:03:00" (3 минуты).

restartQueueLimit

Задает максимальное число запросов, которые ставятся в очередь при ожидании перезапуска рабочего процесса после аварийного завершения. Он не используется в случае чистого завершения работы или стандартного перезапуска.

По умолчанию используется значение 10.

serverErrorMessageFile

Задает содержимое файла, которое будет использоваться вместо стандартного сообщения "Server Unavailable" ("Сервер недоступен") в случае возникновения неисправимой ошибки. Расположение файла может задаваться как по отношению к файлу Machine.config, так и в абсолютном формате. Если этот атрибут отсутствует, то будет использоваться стандартное сообщение "Server Unavailable" ("Сервер недоступен").

shutdownTimeout

Задает разрешенное количество минут, в течение которого должен завершиться рабочий процесс. По истечении времени ожидания при использовании ASP.NET рабочий процесс будет завершен. Время задается в строчном формате чч:мин:сек.

Значение по умолчанию — "0:00:05" (5 секунд).

timeout

При использовании ASP.NET задает количество минут перед тем, как будет запущен новый рабочий процесс вместо текущего.

По умолчанию используется значение Infinite.

userName

При использовании ASP.NET указывает, что рабочий процесс будет выполняться с учетными данными Windows, которые отличаются от учетных данных по умолчанию. По умолчанию этот атрибут имеет значение Machine и процесс выполняется под учетной записью с именем ASPNET, которая была создана автоматически при установке ASP.NET. Пароль для учетной записи ASPNET создается криптографически в момент установки. Если в этом атрибуте и атрибуте password указаны допустимые учетные данные пользователя, то процесс будет выполняться с использованием указанной учетной записи. Другим значением для атрибута userName является System с паролем AutoGenerate. При этом процесс выполняется с использованием административной учетной записи, и выполняемый данным процессом пользовательский код в ASP.NET имеет полные административные права доступа. Сведения об использовании ASP.NET на сервере, являющимся контроллером домена, см. ниже в разделе "Примечания".

ПримечаниеПримечание
Этот атрибут и атрибут password сохраняются в текстовом формате в файле конфигурации.Хотя служба Microsoft IIS не передает файлы .config в ответном сообщении на запрос пользовательского агента, их можно прочесть другими способами.Например, их может прочесть проверенный пользователь содержащего сервер домена, имеющий соответствующие учетные данныеПо соображениям безопасности в разделе processModel поддерживается хранение в системном реестре зашифрованных значений атрибутов userName и password.Учетные данные должны находиться в формате REG_BINARY и шифроваться с помощью функций шифрования Windows 2000 и Windows XP API защиты данных (DPAPI).Дополнительные сведения см. в разделе "Сохранение имени пользователя и пароля в системном реестре" далее в этом документе.

По умолчанию используется значение "machine".

webGarden

При использовании вместе с атрибутом cpuMask задает свойство процессора. (Мультипроцессорный веб-сервер называется многопроцессорным веб-сервером).

Атрибут webGarden может принимать одно из следующих значений.

ЗначениеОписание
True Указывает, что атрибут cpuMask используется для указания процессоров, подходящих для выполнения процессов ASP.NET.
False Указывает, что использование CPU определяется операционной системой Windows.Атрибут cpuMask игнорируется, и выполняется только один рабочий процесс.

По умолчанию используется значение False.

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

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

Родительские элементы

Элемент

Описание

system.web

Задает корневой элемент для раздела конфигурации ASP.NET и содержит элементы конфигурации, предназначенные для настройки веб-приложений ASP.NET и управления их работой.

Заметки

В системе конфигурации управляемого кода чтение параметров конфигурации processModel не производится. Вместо этого параметры processModel считываются непосредственно неуправляемым DLL (aspnet_isapi.dll). Внесенные в этот раздел изменения не вступают в силу до перезапуска рабочего процесса IIS.

При использовании ASP.NET с работающими в собственном режиме службами IIS версии 6 используется модель процессов IIS 6, а некоторые атрибуты в разделе processModel игнорируются. Однако по-прежнему будут применяться следующие атрибуты.

  • autoConfig

  • maxIoThreads

  • maxWorkerThreads

  • minIoThreads

  • minWorkerThreads

  • requestQueueLimit

  • responseDeadlockInterval

Сведения о модели процессов IIS 7 см. в статье Process Model Settings for an Application Pool.

Для настройки удостоверения, цикличности и других значений модели процессов в IIS 6.0 следует использовать пользовательский интерфейс диспетчера служб Интернета, чтобы настроить для приложения рабочий процесс IIS.

ПримечаниеПримечание

При настройке IIS 6 на выполнение ASP.NET в режиме изоляции IIS 5.0 использование ASP.NET 2.0 невозможно.

Значения времени задаются в форме "часы:минуты:секунды". При задании одного числа (без двоеточий) предполагается, что оно относится к минутам, следовательно, timeout="4" эквивалентно timeout="00:04:00".

Если приложение ASP.NET вызывает рабочий процесс ASP.NET (aspnet_wp.exe для Windows 2000 и Windows XP Professional, w3wp.exe для Windows Server 2003) для перезапуска с сообщением об ошибке из-за подозрения на состояние взаимной блокировки, то следует увеличить значение атрибута responseDeadlockInterval.

Контроллеры домена и локальная учетная запись ASPNET

При установке .NET Framework версии 1.1 на контроллер домена локальная учетная запись ASPNET создана не будет. Вместо этого приложения ASP.NET будут выполняться под другими учетными данными следующим образом.

  • На контроллерах домена, работающих под управлением Windows 2000 Server, приложения ASP.NET запускаются под учетной записью IWAM_machinename.

  • На контроллерах домена, работающих под управлением Windows Server 2003, приложения ASP.NET запускаются под учетной записью NETWORK SERVICE независимо от режима изоляции IIS.

В некоторых случаях для запуска ASP.NET на контроллере домена требуется выполнить дополнительные действия по правильной установке. Для получения дополнительных сведений о запуске .NET Framework версии 1.1 на контроллере домена перейдите на страницу поиска в базе знаний и см. статью Q824308 "Учетная запись IWAM не предоставляет права на олицетворение для ASP.NET 1.1 в контроллере домена Windows 2000 с пакетом обновления 4 (SP4)". Для получения дополнительных сведений о запуске .NET Framework версии 1.0 на контроллере домена перейдите на страницу поиска в базе знаний и см. статью Q315158 "ASP.NET на работает с учетной записью по умолчанию ASPNET на контроллере домена".

Сохранение имени пользователя и пароля в системном реестре

Чтобы зашифровать имя пользователя и пароль и сохранить их в реестре, задайте атрибутам userName и password значения, как показано в следующем примере.

   userName="registry:HKLM\Software\AspNetProcess,Name"
   password="registry:HKLM\Software\AspNetProcess,Pwd"

Часть строки, находящаяся после зарезервированного слова registry и перед запятой (,), указывает имя раздела реестра, который открывается при использовании ASP.NET. Часть после запятой (,) содержит единственное имя (имеющее строковое значение), откуда производится чтение учетных данных при использовании ASP.NET. Запятая (,) является обязательной, учетные данные должны храниться внутри куста HKLM. Если формат конфигурации неверен, то рабочий процесс не будет запущен средой ASP.NET, а исполнение кода пойдет по ветви, обрабатывающей ошибки создания текущей учетной записи.

Учетные данные должны быть представлены в формате REG_BINARY и содержать результат вызова функции Windows API CryptProtectData. Для создания зашифрованных учетных данных и сохранения их в реестре можно воспользоваться программой Aspnet_setreg.exe Для шифрования программа Aspnet_setreg.exe использует CryptProtectData. Чтобы загрузить Aspnet_setreg.exe вместе с исходным кодом Microsoft Visual C++ и документацией, перейдите на веб-узел ASP.NET и выполните поиск "aspnet_setreg".

Доступ к разделу, хранящему зашифрованные учетные данные, необходимо настроить так, чтобы он был возможен только для членов группы "Администраторы" и SYSTEM. Поскольку раздел читается процессом ASP.NET, выполняемым как SYSTEM, следует установить следующие разрешения:

Administrators:F
SYSTEM:F
CREATOR OWNER:F 
ProcessAccount: R

При этом для защиты данных будут использоваться следующие способы.

  • Разрешения ACL требуют удостоверения администратора для доступа к данным.

  • Для получения учетных данных атакующий должен выполнить код на сервере (вызвать CryptUnprotectData).

Параметры по умолчанию

Следующий установленный по умолчанию элемент processModel не задается явно ни в файле Machine.config, ни в корневом файле Web.config. Однако приложением возвращается именно конфигурация по умолчанию.

<processModel 
   enable="true" 
   timeout="Infinite" 
   idleTimeout="Infinite" 
   shutdownTimeout="00:00:05" 
   requestLimit="Infinite" 
   requestQueueLimit="5000" 
   restartQueueLimit="10" 
   memoryLimit="60" 
   webGarden="false" 
   cpuMask="0xffffffff" 
   userName="machine" 
   password="AutoGenerate" 
   logLevel="Errors" 
   clientConnectedCheck="00:00:05" 
   comAuthenticationLevel="Connect" 
   comImpersonationLevel="Impersonate" 
   responseDeadlockInterval="00:03:00" 
   responseRestartDeadlockInterval="00:03:00" 
   autoConfig="true" 
   maxWorkerThreads="20" 
   maxIoThreads="20" 
   minWorkerThreads="1" 
   minIoThreads="1" 
   serverErrorMessageFile="" 
   pingFrequency="Infinite" 
   pingTimeout="Infinite" 
   asyncOption="20" 
   maxAppDomains="2000" 
/>

Следующий элемент processModel по умолчанию задается в файле Machine.config для платформы .NET Framework версий 1.0 и 1.1.

<processModel
   enable="true"
   timeout="Infinite"
   idleTimeout="Infinite"
   shutdownTimeout="0:00:05" 
   requestLimit="Infinite" 
   requestQueueLimit="5000" 
   restartQueueLimit="10"
   memoryLimit="60" 
   webGarden="false"
   cpuMask="0xffffffff"
   userName="machine"
   password="AutoGenerate"
   logLevel="Errors"
   clientConnectedCheck="0:00:05"
   comAuthenticationLevel="Connect"
   comImpersonationLevel="Impersonate"
   responseRestartDeadlockInterval="00:09:00"
   responseDeadlockInterval="00:03:00" 
   <!-- In the .NET Framework version 1.1, the next two attributes are
        set to 20. -->
   maxWorkerThreads="25"
   maxIoThreads="25"
        />

Сведения об элементе

Обработчик раздела конфигурации

ProcessModelSection

Член конфигурации

ProcessModel

Настраиваемые расположения

Machine.config

Требования

Microsoft Internet Information Services (IIS) версии 5.0, 5.1 или 6.0

.NET Framework версии 1.0, 1.1 или 2.0

Microsoft Visual Studio 2003 или Visual Studio 2005

См. также

Задачи

Практическое руководство. Настройка отдельных каталогов с помощью параметров расположения

Пошаговое руководство. Отключение параметров конфигурации ASP.NET

Ссылки

Элемент system.web (схема параметров ASP.NET)

Элемент configuration (схема общих параметров)

System.Configuration

System.Web.Configuration

ProcessModel

ProcessModelSection

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

Настройка удостоверения процесса ASP.NET

Иерархия и наследование файла конфигурации ASP.NET

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

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

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

Общие параметры конфигурации (ASP.NET)

Improving ASP.NET Performance

Параметры конфигурации ASP.NET

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

Файлы конфигурации ASP.NET

Конфигурационный API-интерфейс настройки ASP.NET