Невозможно установить пароль в IIS 8 для пользователя домена как идентификатора ApplicationPool

Невозможно установить пароль в IIS 8 для пользователя домена как идентификатора ApplicationPool

Я пытаюсь установить учетную запись пользователя домена как идентификатор ApplicationPool в IIS 8 (Windows 2012). При попытке сделать это с помощью консоли управления IIS я всегда получаю ошибку:

Значение не попадает в ожидаемый диапазон.

При попытке установить идентификатор с помощью appcmd.exe он терпит неудачу как при установке имени пользователя и пароля, так и при установке только пароля. Установка имени пользователя не является проблемой.

Попытка задать имя пользователя и пароль [НЕУДАЧНО]:

>appcmd set config /section:applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.userName:DOMAIN\Username /[name='AppPoolName'].processModel.password:P4ssW0rd
Applied configuration changes to section "system.applicationHost/applicationPools" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"
ERROR ( hresult:80070057, message:Failed to commit configuration changes. The parameter is incorrect. )

Попытка задать только имя пользователя [УСПЕШНО]:

>appcmd set config /section:applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.userName:DOMAIN\Username
Applied configuration changes to section "system.applicationHost/applicationPools" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"

Попытка установить пароль после успешной установки имени пользователя [FAIL]:

>appcmd set config /section:applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.password:P4ssW0rd
Applied configuration changes to section "system.applicationHost/applicationPools" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"
ERROR ( hresult:80070057, message:Failed to commit configuration changes. The parameter is incorrect. )

Я добавил пользователя домена в группу IIS_IUSRS и разрешил ему «Входить в систему как служба».

Есть ли какие-нибудь предположения, что я могу делать неправильно?

решение1

СогласноКак настроить веб-приложение IIS, чтобы оно могло получить доступ к сетевому ресурсу без AD?

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

Ключевым шагом в диагностике является рассмотрение правильных событий:

Чтобы выяснить, как решить эту проблему, я зашел в просмотрщик событий. В журнале приложений ничего не было, поэтому я направился в Журналы приложений и служб => Microsoft => Windows => IIS-Configuration. Журналы здесь по умолчанию отключены, поэтому их нужно включить. (Чтобы сделать это, щелкните правой кнопкой мыши журнал и выберите Включить журнал.) После включения снова запустите попытку установить идентификатор и обновите представление (панель Действия или F5), и вуаля! Теперь у нас есть больше информации об ошибке. В результатах были две Ошибки (идентификаторы событий 42 и 43).

У меня были те же ошибки событий, что и в статье:

ID 42: Не удалось инициализировать провайдер шифрования 'IISWASOnlyAesProvider' в '\?\C:\windows\system32\inetsrv\config\applicationHost.config'. Проверьте конфигурацию.

ID 43: Не удалось зашифровать атрибут «Microsoft.ApplicationHost.AesProtectedConfigurationProvider».

Затем я сделал следующее:

  • восстановить старую версию файла ConfigEncKey.key (в c:\windows\System32\inetsrv\config)
  • заменить <configProtectedData><providers>раздел на старый (в c:\windows\System32\inetsrv\config\applicationHost.config)

Затем я снова могу задать пользовательский идентификатор для пула приложений.

решение2

Вы можете получить закрытый ключ с другого сервера и просто импортировать его на этот сервер, предварительно экспортировав ключ с другого работающего сервера IIS: C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -px "iisWasKey" "C:\temp\AESKeys.xml" -pri

Во-вторых, вы можете восстановить этот ключ на сломанной машине (скопируйте ключ на другой сервер и поместите его в то же место): C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -pi "iisWasKey" "C:\temp\AESKeys.xml"

В-третьих, вы редактируете файл c:\windows\system32\inetsrv\applicationhost.config и используете раздел configprotecteddata с известного рабочего сервера вместо того, который уже есть в этом файле.

Это будет выглядеть примерно так:

Если все пойдет хорошо, вы можете протестировать его, создав пул приложений, а затем перейти к расширенным настройкам и запустить его как DOMAIN\user или какой-либо другой нужный пользователь.

Тони Трус

решение3

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

Источник

решение4

Попробуйте изменить /section:applicationPoolsна /section:system.applicationHost/applicationPoolsи добавить /commit:apphostв конец

appcmd set config /section:system.applicationHost/applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.password:P4ssW0rd /commit:apphost

Связанный контент