Хотя
в основном вы работаете с параметрами
ASP.NET из настроечных файлов, имеется
несколько параметров, которые
настраиваются с помощью инструмента
администрирования IIS. Они включают
дополнительные параметры Microsoft
Windows Server 2003, поскольку
происходит настройка процесса ASP.NET в
инструменте администрирования IIS.
Включение поддержки ASP.NET
В
Windows 2000 Server для доступа к
ASP.NET нужно установить на вашем
сервере Microsoft .NET Framework. Так
как в Windows Server 2003 уже содержится
.NET Framework, требуется только
включить поддержку ASP.NET на сервере.
Простейшим способом сделать это является
использование мастера настройки сервера
(Configure Your Server Wizard) и
назначение роли сервера приложений.
Добавление этой роли установит среди
прочего IIS, ASP.NET, ASP и COM+.
-
Откройте мастер настройки сервера
(Configure Your Server Wizard).
-
Щелкните Next (Далее) на вводной
странице.
- В
списке Server Role (Роль сервера)
выберите Application Server (Сервер
приложений) и щелкните Next, как
показано на рис. 8.1.
-
Установите флажок Enable ASP.NET (Включить
ASP.NET) и, если требуется, флажок
FrontPage Server Extensions (Серверные
расширения FrontPage), а затем
щелкните на Next, как показано на
рис. 8.2.
-
Щелкните Next в итоговом окне.
-
Щелкните Finish (Готово), чтобы
установить IIS с активизированной
ASP.NET.
Рис. 8.1. Выбор роли сервера
приложений
Рис. 8.2. Установка флажка
Enable ASP.NET (Включить ASP.NET)
Если
IIS на вашем сервере уже установлен, а
ASP.NET не активизирована, то ниже
показан простой способ включить ASP.NET
без использования мастера настройки
сервера.
-
Откройте инструмент
администрирования IIS.
-
Щелкните на значке папки Web
Services Extensions.
- В
списке Web Service Extension
щелкните на ASP.NET, как показано на
рис. 8.3.
Рис. 8.3. Выбор расширения
ASP.NET из списка
-
Щелкните на кнопке Allow (Разрешить).
После
этого ASP.NET будет установлена и готова
к работе.
Утилита установки ASP.NET IIS
Существует специальная небольшая утилита
для установки ASP.NET в IIS для Windows
2000 Server и Windows Server 2003. Для
ее использования перейдите в папку
C:\%winndir%\
Microsoft.NET\Framework\v1.1.4322.
Затем
введите
aspnet_regiis –i. Эта команда
установит в IIS фильтр ASP.NET ISAPI и
все соответствия. Имеется и другие ключи,
используемые с утилитой aspnet_regiis.
Чтобы увидеть список этих ключей,
введите
aspnet_regiis -?.
Работа
с пулами приложений
Пулы приложений – это новая функция
Windows Server 2003, которая изолирует
группу приложений в рамках общего набора
рабочих процессов и параметров. Изолируя
приложения в пулы приложений, вы можете
перезапускать рабочие процессы, не влияя
на другие пулы приложений сервера.
Вместо настройки параметров в разделе
<processModel>
файла
machine.config вы будете
настраивать их в каждом пуле приложений
сервера.
Управление пулами приложений
Для
быстрого создания и удаления пулов
приложений на сервере используйте
инструмент администрирования IIS. Ниже
приведена процедура добавления к серверу
нового пула приложений.
-
Щелкните правой кнопкой мыши на
директории Application Pool.
-
Щелкните на New (Создать), а затем
на Application Pool (Пул приложений).
-
Укажите имя пула приложений и
выберите вариант создания с
параметрами по умолчанию или
использование в качестве шаблона
другого пула приложений, как
показано на рис. 8.4.
Рис. 8.4. Введите имя пула
приложений и выберите параметры по
умолчанию
-
Щелкните OK.
Будет
создан новый пул приложений, вы можете
его настраивать и добавлять в него новые
приложения.
Настройка пулов приложений
Пулы
приложений имеют большое количество
параметров для настройки поведения
рабочих процессов пула. Чтобы получить
доступ к этим параметрам, щелкните
правой кнопкой мыши на пуле приложений и
выберите пункт Properties (Свойства).
Появится диалоговое окно Default AppPool
Properties (Свойства AppPool по
умолчанию), показанное на рис. 8.5.
Рис. 8.5. Вкладка Recycling (Перезапуск)
диалогового окна свойств пула приложений
Данная
вкладка содержит параметры, управляющие
"переработкой" рабочих процессов (см.
табл. 8.1).
Таблица 8.1. Параметры вкладки
Recycling (Перезапуск)
Параметр |
Описание |
Recycle
worker processes (in
minutes) (Перезапускать
рабочие процессы через [мин])
|
Указывает,
что рабочие процессы будут
автоматически очищаться
каждые Х минут, где Х –
число, введенное в текстовом
поле. |
Recycle
worker process (number of
requests) (Перезапускать
рабочие процессы [число
запросов]) |
Указывает,
что каждый рабочий процесс
будет автоматически
очищаться после того, как
обработает Х запросов, где Х
– число запросов, введенное
в текстовом поле. |
Recycle
worker processes at the
following times (Перезапускать
рабочие процессы в указанное
время) |
Указывает,
что рабочие процессы будут
автоматически очищаться при
наступлении заданного в
текстовом поле времени. Это
очень полезно, если вы
знаете, когда ожидается
снижение нагрузки на ваше
приложение, чтобы рабочий
процесс был очищен, не
создавая при этом неудобств
пользователям. |
Maximum
virtual memory (in
megabytes) (Максимальное
количество виртуальной
памяти, в Мб) |
Указывает,
что каждый рабочий процесс,
использующий виртуальной
памяти больше заданного
здесь значения, будет
автоматически очищен. |
Maximum used
memory (in megabytes) (Максимальный
размер используемой памяти,
в Мб) |
Указывает,
что каждый рабочий процесс,
использующий физической
памяти больше заданного
здесь значения, будет
автоматически очищен. |
Эти
параметры гарантируют, что ни один
процесс не заберет себе все ресурсы
памяти сервера. Они также используются
для периодического перезапуска процессов,
которые могут приводить к утечкам памяти
или захватывают слишком много памяти.
Вкладка Performance (Производительность)
диалогового окна свойств пула приложений
содержит параметры, управляющие
производительностью пула приложений и
запущенных в нем рабочих процессов (рис.
8.6).
Вероятно, наиболее важными параметрами
здесь являются настройки веб-сада,
позволяющие создавать и использовать
несколько рабочих процессов для данного
пула приложений.
Вкладка Health (Работоспособность)
диалогового окна свойств пула приложений
содержит параметры, относящиеся к
состоянию рабочего процесса (рис. 8.7).
Рис. 8.6. Вкладка Performance (Производительность)
диалогового окна свойств пула приложений
Рис. 8.7. Вкладка Health (Работоспособность)
диалогового окна свойств пула приложений
В
таблице 8.2 содержится перечень
параметров вкладки Performance (Производительность).
Таблица 8.2. Параметры вкладки
Performance (Производительность)
Параметр |
Описание |
Параметр
Shutdown worker processes
after being idle for (time
in minutes) (Выключать
рабочие процессы при простое
[время в минутах]) |
Ограничивает
количество времени простоя
рабочего процесса, перед тем
как он будет остановлен
системой. |
Limit the
kernel request queue (number
of requests) (Предельная
длина очереди запросов ядра
[число запросов]) |
Ограничивает
количество запросов,
помещаемых в очередь этого
пула приложений, перед тем
как пользователям будут
возвращены сообщения об
ошибках HTTP 503. |
Enable CPU
monitoring (Включить
наблюдение за использованием
процессора) |
Активизирует
наблюдение за центральным
процессором и позволяет
использовать следующие три
параметра. |
Maximum CPU
use (percentage) (Максимальное
использование процессора [в
процентах]) |
Указывает
максимальную нагрузку на
процессор перед выполнением
действия. |
Refresh CPU
usage numbers (in minutes) (Интервал
обновления данных [в минутах]) |
Определяет
интервалы, через которые
проверяется загруженность
процессора. |
Action
performed when CPU usage
exceeds maximum CPU use (Действие,
выполняемое при превышении
предельного использования
процессора) |
Указывает
действие, выполняемое при
обнаружении превышения
максимально возможного
значения использования
процессора. В настоящий
момент доступны варианты
No
Action (Действие
отсутствует) и
Shutdown (Выключение).
При выборе варианта
Shutdown процесс
будет остановлен. |
Maximum
number of worker processes (Максимальное
количество рабочих процессов) |
Указывает
максимальное количество
рабочих процессов,
создаваемых для обработки
данного пула приложений. |
В табл.
8.3 содержится перечень параметров
вкладки Health (Работоспособность).
Таблица 8.3. Параметры вкладки
Health (Работоспособность)
Параметр |
Описание |
Enable
pinging – Ping worker
process every (frequency in
seconds) (Включить
применение команды ping –
опрашивать рабочий процесс
каждые [частота в секундах]) |
Указывает,
что каждый рабочий процесс
будет опрашиваться каждые Х
секунд, где Х – число,
введенное в текстовом
поле.Позволяет определить,
насколько корректно работает
рабочий процесс и не
заблокирован ли он.
|
Enable
rapidfail protection –
Disable the application pool
if there are a certain
number of worker process
failures within a specified
time period (Включить защиту
от частых сбоев – отключить
пул приложений, если имеется
определенное количество
сбоев рабочего процесса за
указанный интервал времени) |
Останавливает
пул приложений, если за
указанный период времени
рабочие процессы сбиваются Х
раз. Х – это значение,
указанное в поле Failures (Сбои);
количество времени указано в
поле Time Period (Период
времени). Если несколько
рабочих процессов дают
несколько сбоев подряд,
логично предположить, что на
сервере или в приложении
возникла какаято крупная
проблема. |
Startup time
limit – Worker process must
startup within (time in
seconds) (Ограничить время
запуска – рабочий процесс
должен запуститься за [время
в секундах]) |
Указывает
количество времени, которое
отпущено рабочему процессу
на запуск, перед тем как
этот процесс будет
остановлен и запустится
другой. |
Shutdown time
limit – Worker process must
shutdown within (time in
seconds) (Ограничить время
остановки – рабочий процесс
должен остановиться за [время
в секундах]) |
Указывает
количество времени, в
течение которого рабочий
процесс должен остановиться
самостоятельно перед
принудительным завершением. |
Параметры состояния управляют рабочими
процессами и гарантируют, что
заблокированные или не отвечающие
рабочие процессы будут остановлены.
Вкладка Identity (Права доступа)
настраивает права доступа, используемые
при запуске рабочего процесса (рис.
8.8).
Рис. 8.8. Вкладка Identity (Права
доступа) диалогового окна свойств пула
приложений
Вы
можете использовать готовую учетную
запись или указать специально созданную
вами. Для использования в качестве прав
доступа имеется несколько
предопределенных учетных записей (см.
табл. 8.4).
Таблица 8.4. Учетные записи прав
доступа
Учетная
запись |
Описание |
Network
Service (Сетевая служба) |
Является
записью по умолчанию; имеет
ограниченные права доступа
как к локальной системе, так
и к сетевым ресурсам. |
Local Service
(Локальная служба) |
Является
самой низкоуровневой учетной
записью из всех встроенных
записей; в отличие от записи
Network Service имеет права
пользователя только для
локальной системы. |
Local System
(Локальная система) |
Является
самой высокоуровневой
учетной записью из всех
встроенных записей; имеет
полный доступ ко всей
системе. |
Вы
также можете использовать учетные записи
IUSR_computername,
IWAM_computername
и ASPNET,
указав их в поле Configurable (Настройка)
вкладки Identity (Права доступа).
Создание нового приложения
Для
создания новых веб-приложений следует
использовать инструмент
администрирования IIS. Если при создании
нового веб-проекта используется
Microsoft Visual Studio .NET, этот шаг
выполняется автоматически, но при
использовании инструмента, отличного от
VS.NET, нужно создать эти приложения
вручную. Ниже приведена процедура
добавления к серверу нового
веб-приложения.
- В
левой панели диспетчера IIS щелкните
на веб-сайте или поддиректории
веб-сайта, в которой вы хотите
разместить свое приложение.
- В
меню Action (Действие) выберите
пункт New (Создать), а затем
щелкните на Virtual Directory (Виртуальный
каталог). Затем щелкните Next (Далее).
-
Введите псевдоним, используемый для
виртуального каталога, и щелкните
Next.
-
Укажите физический каталог для этого
приложения.
-
Выберите действия, выполнение
которых нужно разрешить с вашим
приложением, затем щелкните Next.
Для приложения ASP.NET вполне
подходят установки по умолчанию.
-
Щелкните Finish (Готово).
Будет
создан виртуальный каталог, помеченный
как приложение, и этот каталог будет
добавлен в пул приложений по умолчанию.
Чтобы изменить пул приложений, частью
которого является это приложение, нужно
получить доступ к свойствам приложения.
Для этого щелкните правой кнопкой мыши
на приложении, а затем – на Properties (Свойства).
Выберите пул приложений для своего
приложения. На рисунке 8.9 показано
диалоговое окно свойств приложения 1.
Рис. 8.9. Диалоговое окно
свойств приложения 1
Использование аутентификации Windows
Первым
шагом к использованию аутентификации
Windows в приложении является установка
режима аутентификации Windows в файле
web.config
вашего сервера. Настройте раздел
<authentication>
следующим образом.
<authentication
mode="Windows"></authentication>
Это
единственное изменение, которое должно
быть сделано в файле
web.config
приложения. Ниже показаны шаги для
использования аутентификации Windows.
- В
диспетчере IIS щелкните правой
кнопкой мыши на приложении, затем –
на Properties (Свойства).
-
Щелкните на вкладке Directory
Security (Безопасность каталога).
- В
области Authentication And Access
Control (Аутентификация и управление
доступом) щелкните на кнопке Edit (Изменить).
-
Снимите флажок Enable Anonymous
Access (Разрешить анонимный доступ).
Это укажет, что перед доступом к
приложению пользователи должны
пройти процедуру аутентификации.
-
Установите флажок для используемого
метода аутентификации, как показано
на рис. 8.10.
Рис. 8.10. Параметры
аутентификации Windows
Для
этого типа аутентификации вам не
требуется добавлять в приложение
никакого кода, так как она выполняется
силами IIS.
Получение доступа к правам пользователя
Вы
можете определить права пользователя,
прошедшего аутентификацию в IIS,
используя объект
WindowsPrincipal. Этот объект
присоединяется к каждому запросу,
который использует аутентификацию
Windows. Он используется для получения
имени пользователя и определяет,
является ли пользователь частью
какой-либо роли. Ниже приведен пример
кода, который получает имя пользователя
и проверяет, принадлежит ли пользователь
группе Administrators (Администраторы).
C#
WindowsPrincipal wpMain
= new WindowsPrincipal(WindowsIdentity.GetCurrent());
string sUserName =
wpMain.Identity.Name;
bool bAdmin =
wpMain.IsInRole("Administrators");
VB.NET
Dim wpMain As
New
WindowsPrincipal(WindowsIdentity.GetCurrent())
Dim sUserName As String =
wpMain.Identity.Name
Dim bAdmin As Boolean =
wpMain.IsInRole("Administrators")
Первая
строка этого кода создает новый
экземпляр класса
WindowsPrincipal, основанный на
пользователе, работающем в системе.
Вторая строка при помощи объекта
Identity и
свойства name
получает имя этого пользователя.
Последняя строка с помощью метода
IsInRole
получает логическое значение, которое
указывает, является ли пользователь
частью группы Administrators (Администраторы).
Ключевые моменты
-
Вы можете включить поддержку ASP.NET
в Windows Server 2003, добавив роль
Application Server либо включив
расширение веб-службы ASP.NET.
-
Для установки и регистрации ASP.NET
в IIS, если ASP.NET не
зарегистрирована в IIS для Windows
Server 2003 или Windows 2000 Server,
используется утилита aspnet_regiis.
-
Пулы приложений могут изолировать
группу приложений, использующих одни
и те же рабочие процессы и настройки
процессов.
-
Если вы не используете VS.NET,
приложения должны создаваться с
помощью инструмента
администрирования IIS.
-
Для определения имени пользователя и
роли пользователя, получающего
доступ к вашему приложению,
применяется объект
WindowsPrincipal.
|