Сбой синхронизации общей конфигурации IIS (Shared Configuration): решение
Симптомы сбоев общей конфигурации IIS
При включении или синхронизации механизма Shared Configuration ноды фермы перестают загружать настройки. Консоль IIS Manager не открывается, выдавая ошибку: «Не удается прочитать файл конфигурации из-за недостаточных разрешений» (0x80070005) или «Ключ шифрования поврежден или недоступен» (0x80090005 / Bad Data).
| Симптом | Причина |
|---|---|
| Ошибка доступа к сетевой шаре (0x80070005) | Неверные сохраненные учетные данные для доступа к SMB-папке конфигурации |
| Сбой расшифровки паролей пулов (0x80090005) | Ключи шифрования iisWasKey / iisConfigurationKey не экспортированы на подчиненные ноды |
| Веб-сервер не применяет изменения | Файл applicationHost.config заблокирован процессом другой ноды |
Пошаговое устранение сбоев Shared Configuration
- Экспортируйте ключи шифрования со主-ноды (первого сервера):
aspnet_regiis -px "iisConfigurationKey" "C:\Keys\iisConfigurationKey.xml" -pri; aspnet_regiis -px "iisWasKey" "C:\Keys\iisWasKey.xml" -pri - Импортируйте ключи на всех остальных серверах веб-фермы:
aspnet_regiis -pi "iisConfigurationKey" "C:\Keys\iisConfigurationKey.xml"; aspnet_regiis -pi "iisWasKey" "C:\Keys\iisWasKey.xml"; aspnet_regiis -pa "iisConfigurationKey" "NT AUTHORITY\SYSTEM"; aspnet_regiis -pa "iisWasKey" "NT AUTHORITY\SYSTEM" - Проверьте права учетной записи на сетевую папку: сервисная учетная запись должна иметь права Изменение (Modify) и Чтение (Read) как на общую сетевую папку SMB, так и на уровне файловой системы NTFS.
- Перезапустите службы IIS на всех серверах:
iisreset /restart
Внимание: После импорта ключей обязательно удалите незашифрованные XML-файлы ключей (*.xml) с жестких дисков серверов в целях безопасности.
Частые вопросы (FAQ)
Что такое Shared Configuration в IIS?
Это встроенная функция, позволяющая группе серверов IIS использовать единый общий файл applicationHost.config, размещенный на общем сетевом хранилище.
Почему при включении общей конфигурации сайты перестают работать с ошибкой Bad Data?
Пароли пулов зашифрованы ключом RSA первого сервера. Другие ноды не могут их расшифровать без импорта ключей iisWasKey и iisConfigurationKey.
Где находится утилита aspnet_regiis.exe?
Она расположена в папке C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe.
Можно ли использовать Shared Configuration без домена Active Directory?
Можно, но для этого на всех серверах IIS и файловом хранилище должны существовать идентичные локальные учетные записи с одинаковыми паролями.