Конфигурирование и настройка Microsoft ASP.NET

       

Работа с разделом <processModel>


Раздел <processModel> в настроечном файле уникален, так как он полностью игнорируется при использовании Windows Server 2003. Плюс к этому, при использовании в Windows 2000 или Windows XP он читается непосредственно расширением ISAPI ASP.NET. По этой причине все изменения данного раздела требуют для вступления в силу перезапуска IIS. При работе с Windows Server 2003 вам не нужно беспокоиться об этом разделе, так как можно изменить его параметры в инструменте администрирования (см. лекцию 8). При использовании Windows 2000 или Windows XP раздел содержит большое количество параметров, относящихся к процессу ASP.NET. Ниже приведен синтаксис раздела <processModel>.

<processModel clientConnectedCheck="amount of time" comAuthenticationLevel="authentication level" comImpersonationLevel= " level" cpuMask="number" enable="true | false" idleTimeout="amount of time" logLevel= "event types" maxWorkerThreads="amount of threads" maxIoThreads= "amount of threads" memoryLimit="memory size" password="password" pingFrequency="amount of time" pingTimeout="amount of time" requestLimit="number of requests" requestQueueLimit= "number of requests" responseDeadlockInterval="amount of time" responseRestartDeadlockInterval="not used" serverErrorMessageFile="file name" shutdownTimeout= "amount of time" timeout="amount of time" userName="username" webGarden="true | false" />

В разделе <processModel> имеется несколько свойств, которым требуется значение времени. Формат этих значений имеет вид Часы:Минуты:Секунды. Можно установить значение времени в Infinite (бесконечность). Таблица 4.17 содержит перечень свойств раздела <processModel>.

Таблица 4.17. Свойства <processModel>

СвойствоОписание
clientConnectedCheckОпределяет, в течение какого времени ASP.NET оставляет запрос в очереди пред проверкой того, подключен клиент или уже нет.
comAuthenticationLevelОпределяет уровень безопасности, используемый для безопасности DCOM. Значением по умолчанию является Connect.

Default Указывает, что уровень аутентификации DCOM определяется обычным алгоритмом проверки безопасности.

None Указывает, что аутентификация не используется.

Connect Указывает, что DCOM будет проверять имя и пароль клиента только при подключении этого клиента к серверу.

Call Указывает, что DCOM проверяет сертификаты клиента в начале каждого удаленного вызова процедуры.

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

PktIntegrity Указывает, что DCOM проверяет факт модификации полученных от клиента данных.

PktPrivacy Указывает, что DCOM проверяет факт модификации полученных от клиента данных и шифрует аргументы всех удаленных вызовов процедур.

comImpersonationLevelОпределяет уровень аутентификации, используемый для COM.
DefaultУказывает, что уровень заимствования прав определяется обычным алгоритмом проверки безопасности.

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

Identity Указывает, что сервер будет получать идентификатор клиента, который можно использовать для заимствования прав пользователя для проверки ACL, но не для доступа к другим объектам системы.

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



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

cpuMaskОпределяет процессоры, которые используются в многопроцессорных серверах. ASP.NET создает рабочий процесс для каждого сервера системы и использует по умолчанию все доступные на сервере процессоры. Иногда требуется ограничить число процессоров, используемых ASP.NET, особенно если на этом сервере выполняются другие приложения или базы данных. Для определения того, какие процессоры будут использоваться, применяется шестнадцатеричное значение.
enableОпределяет включение модели процесса.

true Модель процесса включена.

false Модель процесса отключена.

idleTimeoutОпределяет интервал времени ожидания ASP.NET перед тем, как завершить рабочий процесс ASP.NET. По умолчанию равно бесконечности.
logLevelОпределяет типы событий, регистрируемых в журнале событий сервера.

All Регистрируются все события.

None События не регистрируются.

Errors Регистрируются только неожиданные остановки, остановки по причине нехватки памяти и взаимные блокировки. Это значение по умолчанию.

maxWorkerThreadsОпределяет максимальное количество рабочих потоков выполнения, которые могут быть созданы для каждого процессора. Это значение должно быть больше или равно значению свойства minFreeThreads из раздела <httpRuntime>.

Допустимые значения лежат в диапазоне от 5 до 100.

maxIoThreadsОпределяет максимальное количество потоков выполнения ввода/вывода, которые могут быть созданы для каждого процессора. Это значение должно также быть больше или равно значению свойства minFreeThreads из раздела <httpRuntime>. Допустимые значения лежат в диапазоне от 5 до 100.
memoryLimitОпределяет максимальный объем памяти, который может быть использован рабочим процессом, прежде чем ASP.NET запустит другой процесс и передаст существующие запросы в этот новый процесс. Выражается в процентах от существующей системной памяти, по умолчанию равно 60 %.
passwordИспользуется в сочетании со свойством username и предназначено для настройки того, с правами какого пользователя будет выполняться рабочий процесс ASP.NET. Значение по умолчанию – AutoGenerate.
pingFrequencyОпределяет интервал времени, по истечении которого расширение ISAPI будет опрашивать рабочий процесс, чтобы убедиться, что он все еще активен и не завис. Если процесс не отвечает, то он перезапускается. Значение по умолчанию 30 с.
pingTimeoutОпределяет промежуток времени, в течение которого расширение ISAPI будет ожидать ответа после опроса рабочего процесса перед его перезапуском. Значение по умолчанию – 5 с.
requestLimitОпределяет число запросов, обрабатываемых ASP.NET перед тем, как запустить новый рабочий процесс для замены текущего. Значение по умолчанию – бесконечность.
requestQueueLimitОпределяет число запросов, которые можно поместить в очередь перед тем, как в ответ на новые запросы начнет возвращаться ошибка 503 Server Too Busy. Значение по умолчанию – 5000.
responseDeadlockIntervalОпределяет промежуток времени, по истечении которого процесс будет перезапущен при наличии запросов в очереди, на которые нет ответа. Значение по умолчанию – 3 минуты.
responseRestartDeadlockIntervalЭто свойство в ASP.NET больше не используется.
serverErrorMessageFileОпределяет файл, используемый вместо сообщения по умолчанию "Server Unavailable" (Сервер недоступен), если в процессе возникает проблема. Этот путь указывается относительно файла machine.config сервера.
shutdownTimeoutОпределяет период времени, который имеется у рабочего процесса для его самостоятельного завершения. Если завершение длится дольше этого периода, то процесс завершается системой ASP.NET. Значение по умолчанию – 5 с.
timeoutОпределяет количество минут до момента, когда ASP.NET запустит новый рабочий процесс для замены текущего. Значение по умолчанию – Infinite (бесконечность).
userNameИспользуется совместно со свойством password, указывая имя пользователя и пароль, используемые для запуска процесса ASP.NET. Может быть установлено на использование готовой учетной записи, конкретного домена или локальной учетной записи пользователя.

Machine Указывает, что ASP.NET запускается под ограниченной учетной записью, созданной при установке ASP.NET. Эта учетная запись имеет очень низкие привилегии и помогает минимизировать угрозу безопасности, если будет обнаружена уязвимость (значение по умолчанию).

System Указывает, что ASP.NET выполняется под административной учетной записью с большими привилегиями. Это значение по умолчанию в версии Beta 2, но сейчас оно не используется, так как создает угрозу безопасности.

Custom Указывает, что процесс должен выполняться как пользовательский процесс с его именем пользователя и паролем. Это может быть как локальная учетная запись, так и учетная запись домена. Данное значение хранится в настроечном файле в виде простого текста. Как и при работе с разделом <identity>, его можно сохранять в реестре. За дополнительной информацией обратитесь к разделу <identity> в этой лекции.

webGardenОпределяет использование отдельного рабочего процесса для каждого процессора либо одного общего процесса (в этом случае использование процессора определяется операционной системой). Web garden (веб-сад) – это многопроцессорный веб-сервер.

true Для указания используемых процессоров используется свойство cpuMask.

false Указывает на использование только одного процесса, а использование процессоров определяется ОС.

Ниже показан пример раздела <processModel>.

<processModel clientConnectedCheck="0:0:25" comAuthenticationLevel= "None" comImpersonationLevel="Delegate" cpuMask="0x0d" enable="true" idleTimeout="25" logLevel="All" maxWorkerThreads= "25" maxIoThreads="25" memoryLimit="75" password="AutoGenerate" pingFrequency="30" pingTimeout="5" requestLimit="Infinite" requestQueueLimit="5000" responseDeadlockInterval="00:03:00" serverErrorMessageFile="c:\inetpub\wwwroot\serverunavail.html" shutdownTimeout="00:00:05" timeout="Infinite" userName="machine" webGarden="false" />

Раздел <processModel> по умолчанию не содержит всех значений; многие являются необязательными, и в случае их отсутствия используются значения по умолчанию.



Содержание раздела