Назад | Перейти на главную страницу

Пул приложений IIS недоступен во время перезагрузки AD

См. Обновление ниже

Я уверен, что об этом уже много раз спрашивали на многих (многих, многих) форумах. Я не могу понять, почему нет однозначного ответа. При необходимости запросите дополнительную информацию.

Q: Есть ли способ гарантировать работоспособность веб-приложения, когда еще один сервер аутентификации AD недоступен (например, перезагружен)?

Всякий раз, когда мы перезагружаем один из наших серверов Active Directory, мы сталкиваемся с тем, что большое количество пулов приложений на нескольких веб-серверах IIS 8.5 и 10.0 дает сбой и становится недоступным. Насколько мне известно, так было со всеми версиями IIS от 6.0 до 10.0.

Регистрируются события с идентификаторами 5022 и 5002:

Службе активации Windows не удалось создать рабочий процесс для пула приложений example.com. Поле данных содержит номер ошибки.

и

Пул приложений example.com автоматически отключается из-за серии сбоев в процессах, обслуживающих этот пул приложений.

Номер ошибки 5022 с кодом события - 80070005 (Доступ запрещен).

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

Мы настроили анонимную аутентификацию с использованием непривилегированных пользователей домена:

  1. Пулы приложений> Расширенные настройки example.com> Удостоверение: DOMAIN \ USER как пользовательская учетная запись (пользователь с паролем) и Загрузить профиль пользователя: true

  2. Веб-сайты> example.com Расширенные настройки> Учетные данные физического пути: пользователь приложения (сквозная аутентификация) и учетные данные физического пути Вход в систему: ClearText

  3. Сайты> example.com> Аутентификация> Анонимная аутентификация включена с использованием удостоверения пула приложений

Обычно при запуске пула аварийных приложений (appcmd list apppool /state:stopped /autostart:true /xml | appcmd start apppool /in) успешно запускает пулы.

Q: отключение защиты IIS Raipid Fail Protection или увеличение максимального количества настроенных сбоев - постоянное решение?

Позволяет TokenCacheModule общесерверный вариант?

Обновление 2019-11-12 Вчера вечером я понизил уровень и удалил старый AD DS из нашей производственной среды. Все серверы Active Directory являются серверами глобального каталога (GC) для домена.

У меня был Process Monitor, работающий на одном веб-сервере, на котором, как я полагал, мог произойти сбой пулов приложений - и они это сделали. К сожалению, Procmon не показал ничего необычного в своем журнале.

В то же время я попытался перезапустить аварийные пулы с помощью appcmd петля выше. На нескольких серверах WinRM выдает ошибку:

Ошибка Winrs: доступ запрещен.

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

Обновление 2019-11-20 13 ноября я отключил IIS Rapid Fail Protection глобально на одном веб-сервере. На этом сервере уже два раза возникали проблемы с сбоями пулов приложений. Теперь я мог без проблем понизить роль и удалить сервер AD DS (GC), и WinRM также мог подключиться.

Это обходной путь, но не решение.

Основная проблема должна быть связана с аутентификацией от веб-сервера / пула приложений к AD DS / серверу входа во время запросов. Если кто-нибудь знает, как позволить IIS быстрее выбирать другую AD для входа в систему, я был бы очень благодарен.

У меня есть x-post на форумы.iis.net.

Спасибо за ваше время :)