Опубликован: 24.11.2006 | Уровень: специалист | Доступ: платный
Лекция 8:

Разрешение вопросов

< Лекция 7 || Лекция 8: 12345

Проблемы, связанные с разрешениями

Неверная установка разрешений файловой системы NT File System (NTFS) может разрушительно сказаться на веб-сайте. Необходимо не только помнить о разрешениях на сайте, но и обеспечить доступность любых используемых COM-объектов. Разрешения на сайте довольно просты и понятны, однако большинство динамически подсоединяемых библиотек (DLL) находятся в каталоге System32. В этом-то и заключается сложность.

Если рабочий процесс IIS не может получить доступ к DLL-библиотеке ISAPI со списком ACL, то все запросы на эту библиотеку будут завершаться ошибкой 503. Необходимо, чтобы рабочий процесс мог загрузить все библиотеки DLL, используемые на сайте.

При устранении проблем с разрешениями (особенно если вы не уверены, что проблема связана именно с разрешениями), самым простым способом выявить проблему является расширение разрешений. Если доступ к сайту выполнен под аутентификационными данными администратора, но проблема по-прежнему не устранена, то дело, скорее всего, не в разрешениях. Если невозможен доступ под учетной записью Internet Guest (Гостевая учетная запись интернета), то проблема определенно заключается в разрешениях.

Предупреждение. В данный момент читатель может задаваться вопросом: "В этой книге не меньше 30 раз говорилось о том, что нельзя использовать расширенные разрешения, так в чем же дело?". Это справедливый вопрос, однако данный подход помогает определить, связана ли проблема с разрешениями. Расширенные полномочия требуют строжайшего контроля. Определенно не стоит использовать данный подход в тот момент, когда сайт находится в состоянии функционирования. Необходимо оградить сайт от доступа посторонних лиц, а затем протестировать его. По окончании этого процесса необходимо вернуть разрешениям соответствующие значения. Нельзя же допустить, чтобы с сайтом все работали на правах администраторов!

Рабочие процессы

В IIS 5 приложения выполнялись внутри процесса с использованием по умолчанию учетной записи LocalSystem. Эта учетная запись имеет более высокий уровень прав, нежели рабочие процессы IIS 6, так как они работают как сетевые службы. Если приложение, правильно работающее в среде IIS 5, вызывает проблемы при работе с IIS 6, можно проверить следующие настройки.

Учетная запись рабочего процесса

Можно изменить учетную запись, присвоенную рабочему процессу. Если существует проблема, связанная с разрешениями, то настройте рабочий процесс на выполнение под учетной записью LocalSystem. Это не рекомендуется делать на функционирующем сайте, однако так можно проверить, вызвана ли проблема взаимодействием приложения как сетевой службы. Если обнаруживается, что приложение правильно функционирует как LocalSystem, то проблему можно решить, перестроив приложение и обойдя использование рабочих процессов, либо проверив разрешения библиотеки DLL, чтобы выяснить, не являются ли они слишком ограничительными.

Ниже описан процесс изменения учетной записи рабочих процессов в пуле приложения:

  1. Выделите пул приложения в консоли MMC IIS.
  2. Выберите команду Action\Properties (Действие\Свойства).
  3. Перейдите на вкладку Identity (Учетная запись).
  4. Выберите учетную запись Network Service (Сетевая служба), Local Service (Сетевая служба) или Local System (Локальная система) либо выберите учетную запись пользователя локального компьютера или доверенного домена.

Рециркуляция рабочих процессов

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

  • Мульти-объектные ISAPI, предназначенные для многоразового единовременного использования различными процессами.
  • Фильтры чтения исходных данных, которые пытаются захватить все данные перед тем, как они достигнут веб-сайта.
  • Внутрипроцессные сеансовые переменные состояния, т.к. они уничтожаются при каждой рециркуляции рабочего процесса.
  • Приложения, передающие работу для выполнения своим собственным рабочим процессам.

Отключение веб-службы

В некоторых случаях клиент получает сообщение об ошибке HTTP 503. При появлении ошибок 503 события записываются в журнал событий Windows. В этом случае следует открыть Event Viewer (Просмотр событий) и проверить, где возникла ошибка – в файле HTTP.sys или в службе WWW. Если ошибка возникла в HTTP.sys, проверьте длину очереди пула приложения. Ошибка могла возникнуть из-за получения слишком большого количества запросов. Очередь пула приложения можно изменить вручную.

  1. В консоли MMC IIS выделите пул приложения, который необходимо изменить.
  2. Выберите команду Action\Propеrties (Действие\Свойства), после чего откройте вкладку Performance (Производительность).
  3. В области Request Queue Limit (Предел очереди запроса) увеличьте значение количества запросов.
  4. Нажмите на кнопку OK.

Если ошибка возникла в службе WWW, возможно, что IIS обнаружила несколько ошибок в рабочих процессах и инициировала оперативную защиту от ошибок. Это вызвало прекращение обработки запросов "пострадавшим" пулом приложения; такая система безопасности защищает сервер от повреждения неправильно функционирующими приложениями. Если такие обстоятельства возникнут единожды, это может свидетельствовать о наличии какой-либо аномалии. Если же это происходит часто, то следует проверить конфигурацию приложения, так как это говорит о неверных настройках. Можно увеличить допустимое число ошибок и интервал времени, однако это не устранит источник проблемы.

Настройка параметров системы быстрого обнаружения ошибок производится следующим образом:

  1. В консоли MMC IIS выделите пул приложения, в который следует внести изменения.
  2. Выберите команду Action\Properties (Действие\Свойства) и откройте вкладку Health (Состояние).
  3. Увеличьте значения параметров для ошибок и/или интервала времени, в течение которого IIS отслеживает ошибки рабочих процессов.
  4. Нажмите на кнопку OK.
< Лекция 7 || Лекция 8: 12345
Дмитрий Васюков
Дмитрий Васюков
Россия, Брянск
Maxim Kuzmin
Maxim Kuzmin
Россия