Установка пользовательской идентификации для пула приложений в IIS 8 не работает. Значение не попадает в ожидаемый диапазон

Это новый сервер настройки в новом домене.

Я добавил сайт в IIS и создал для него пул приложений. Как только я пытаюсь установить другого пользователя (удостоверение) для запуска пула приложений, я получаю сообщение об ошибке.

There was an error while performing this operation. 
Details :
Value does not fall within expected range.

Пользователь является пользователем домена и входит в группу администраторов, я также добавил его в группу IIS_IUSRS - безуспешно.

Я попытался использовать мою учетную запись, но она тоже не сработала. Работает только локальный сервис или локальная система, никаких пользовательских пользователей. Поскольку журнал событий пуст, у меня закончились идеи. Я удалил сайт, удалил apppool, воссоздал уже много раз, безуспешно.

Windows server 2012, IIS 8

1 ответ

Решение

Я также столкнулся с этой проблемой в Windows Server 2012. При попытке установить удостоверение пула приложений из командной строки вы получаете похожую ошибку:

C:> appcmd set config /section:applicationPools 
     /[name='test-pool'].processModel.identityType:SpecificUser 
     /[name='test-pool'].processModel.userName:MyAccountName 
     /[name='test-pool'].processModel.password:P@ssw0rd

ERROR ( hresult:80070057, message:Failed to commit configuration changes.
  The parameter is incorrect.
 )

Если вы удалите последний параметр, команда успешно изменит тип идентификации и задает имя пользователя. Я никогда не понимал, почему я не мог установить пароль, поэтому я ответил прямо на редактирование файла 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

У меня была эта проблема с новым развертыванием IIS 10. Наша сетевая команда скопировала файл applicationhost.config со старых серверов, и это вызвало его. В IIS 10 есть две новые настройки, которые шифруют пароль для удостоверения пула приложений. Поскольку в файле конфигурации IIS 7 не было этих настроек шифрования, IIS выдавал эту ошибку при назначении нового пользователя. Я просто скопировал настройки из новой сборки сервера, и он начал работать нормально. Добавьте эти две настройки к уже существующим:

<configProtectedData>
<providers>

    <add name="IISCngProvider" type="Microsoft.ApplicationHost.CngProtectedConfigurationProvider" description="Uses Win32 Crypto CNG to encrypt and decrypt" keyContainerName="iisCngConfigurationKey" useMachineContainer="true" />
    <add name="IISWASOnlyCngProvider" type="Microsoft.ApplicationHost.CngProtectedConfigurationProvider" description="(WAS Only) Uses Win32 Crypto CNG to encrypt and decrypt" keyContainerName="iisCngWasKey" useMachineContainer="true" />

</providers>
</configProtectedData>
Другие вопросы по тегам