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

Обновлен: Ноябрь 2007

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

7w2sway1.alert_caution(ru-ru,VS.90).gifВнимание!

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

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

<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 представляет побитовый шаблон 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 этого времени выполнения. Для двухпроцессорного сервера наибольшее количество процессов — 50. Значение этого атрибута не должно быть меньше значения атрибута minFreeThread, установленного в разделе настройки httpRuntime.

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

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

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

maxWorkerThreads

Задает для одного процессора наибольшее количество рабочих потоков, используемых для процесса. Например, если для однопроцессорного сервера установлено значение 25, то при использовании ASP.NET для установки данного ограничения используются API этого времени выполнения. Для двухпроцессорного сервера наибольшее количество процессов — 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.

7w2sway1.alert_note(ru-ru,VS.90).gifПримечание.
Существуют угрозы безопасности, связанные с хранением учетных данных в файле конфигурации. Дополнительные сведения см. в разделе "Сохранение имени пользователя и пароля в системном реестре" далее в этом документе.

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

pingFrequency

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

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

pingTimeout

Задает интервал времени в стандартном формате модели процессов (чч:мин:сек), после которого зависший рабочий процесс перезапускается. Расширения ISAPI выполняют опрос рабочего процесса с интервалом, указанным в атрибуте 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 на сервере, являющимся контроллером домена, см. ниже в разделе "Примечания".

7w2sway1.alert_note(ru-ru,VS.90).gifПримечание.
Этот атрибут и атрибут 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 6.0 следует использовать пользовательский интерфейс диспетчера служб Интернета, чтобы настроить для приложения рабочий процесс IIS.

7w2sway1.alert_note(ru-ru,VS.90).gifПримечание.

При настройке 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" 
/>

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

<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 IIS версии 5.0, 5.1 или 6.0

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

Microsoft Visual Studio 2003 или Visual Studio 2005

См. также

Задачи

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

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

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

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

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

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

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

Ссылки

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

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

System.Configuration

System.Web.Configuration

ProcessModel

ProcessModelSection

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

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

Повышение производительности ASP.NET

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

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

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

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