Элемент processModel (схема параметров ASP.NET)
Обновлен: Ноябрь 2007
Настраивает параметры модели процессов ASP.NET для веб-сервера Microsoft Internet Information Services (IIS). Раздел processModel может быть задан только внутри файла Machine.config. Данный раздел влияет на все выполняемые на сервере приложения ASP.NET.
Внимание! |
---|
Изменения элемента 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.
Примечание.
Существуют угрозы безопасности, связанные с хранением учетных данных в файле конфигурации. Дополнительные сведения см. в разделе "Сохранение имени пользователя и пароля в системном реестре" далее в этом документе.
Значение по умолчанию — 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 на сервере, являющимся контроллером домена, см. ниже в разделе "Примечания".
Примечание.
Этот атрибут и атрибут 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.
Примечание. |
---|
При настройке 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"
/>
Сведения об элементе
Обработчик раздела конфигурации |
|
Элемент конфигурации |
|
Настраиваемые расположения |
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
Ссылки
Элемент system.web (схема параметров ASP.NET)
Элемент configuration (схема общих параметров)
Другие ресурсы
Общие параметры конфигурации (ASP.NET)
Повышение производительности ASP.NET
Параметры конфигурации ASP.NET