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

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

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

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

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

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

>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 и разрешил ему «Войти в качестве службы».

Есть предложения, что я делаю неправильно?

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

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

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

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

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

Вы можете получить закрытый ключ с другого сервера и просто импортировать его на этот сервер, сначала экспортировав ключ с другого работающего сервера 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 или другого пользователя, которым он должен быть.

Тони Трус

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

Источник

Я также столкнулся с этой проблемой в Windows Server 2012.

Если вы удалите последний параметр при использовании appcmd, пароль, вам удастся изменить тип удостоверения и установить имя пользователя.

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

<configuration>
   ...
    <system.applicationHost>
        <applicationPools>
            ...
            <add name="test-pool" managedRuntimeVersion="v4.0">
                <processModel identityType="SpecificUser" 
                  userName="MyAccountName" password="P@ssw0rd" />
            </add>
            ...
        </applicationPools>
        ...
    </system.applicationHost>
    ...
</configuration>

Помимо настройки пула приложений для использования определенной учетной записи, я также сделал следующее:

1) Включил учетную запись в группу IIS_IUSRS, которая косвенно дает ей права входа в систему как пакетное задание.

2) Выполните следующую команду, чтобы предоставить права пользователю

aspnet_regiis -ga <your_app_pool_user>

Узнать больше: Как: создать учетную запись службы для приложения ASP.NET 2.0 (MSDN)

3) Перезапустите WAS и IIS, чтобы убедиться, что изменения в членстве в группах учетных записей вступили в силу.

C:> net stop was /y
C:> net start w3svc

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

appcmd задает конфигурацию /section:system.applicationHost/applicationPools /[name='AppPoolName '] .processModel.identityType:SpecificUser /[name='AppPoolName'] .processModel.password:P4ssW0rd / commit: apphost