#iis #windows-server-2012 #iis-8 #windows-server-2012-r2 #iis-8.5
#iis #windows-server-2012 #iis-8 #windows-server-2012-r2 #iis-8.5
Вопрос:
У меня есть три Windows Server 2012 R2 без рекламы в сети DMZ. Два сервера являются интерфейсными веб-серверами с ASP.NET и у одного есть SQL Server и общий сетевой ресурс, который оба интерфейсных сервера используют для общих данных.
Моя проблема в том, как мне настроить идентификатор пула приложений и сетевой ресурс, чтобы ASP.NET приложение может считывать и записывать данные в общий сетевой ресурс?
Это просто, когда AD доступно, когда вы можете использовать учетные записи домена для удостоверения пула приложений, но в этой настройке AD отсутствует.
Ответ №1:
Я отвечу на свой собственный вопрос, поскольку мне удалось настроить сервер. Вот что я сделал:
1) Создайте учетную запись с одинаковым именем пользователя и паролем на всех трех серверах. Убедитесь, что срок действия не истек и его не нужно изменять.
2) Создайте общий сетевой ресурс и предоставьте новой учетной записи права на чтение / запись. Я также проверил, что могу подключаться с интерфейсных серверов, используя новую учетную запись, чтобы убедиться, что брандмауэры не мешают.
3) Включил пользователя в группу IIS_IUSRS, которая косвенно предоставляет ему права входа в систему в качестве пакетного задания.
4) Выполните следующую команду, чтобы предоставить права пользователю
aspnet_regiis -ga <your_app_pool_user>
Показать еще: Как: Создать учетную запись службы для ASP.NET Приложение 2.0 (MSDN)
5) Перезапустить WAS и IIS, чтобы убедиться, что изменения в членстве в группе учетных записей сохраняются при попытке использования учетной записи.
C:> net stop was /y
C:> net start w3svc
6) Создайте пул приложений и задайте идентификатор.
Это та часть, где я застрял с сообщениями об ошибках при попытке установить идентификатор.
Из диспетчера IIS я получил следующее диалоговое окно с ошибкой: «При выполнении этой операции произошла ошибка. Подробности: значение не попадает в ожидаемый диапазон. »
Пытаясь установить идентификатор пула приложений из командной строки, я получаю аналогичную ошибку:
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>
7) Наконец, я настроил свое веб-приложение на использование приложения, и оно смогло получить доступ к общему сетевому ресурсу без каких-либо проблем.
Ответ №2:
У меня была такая же проблема, но я не мог ввести пароль открытым текстом, поэтому я копнул немного дальше и нашел эту статью: http://social.technet.microsoft.com/wiki/contents/articles/30344.custom-iis-app-pool-identity-value-does-not-fall-within-the-expected-range.aspx
Ключевым шагом для диагностики является поиск правильных событий :
Чтобы выяснить, как решить эту проблему, я зашел в средство просмотра событий. В журнале приложений ничего не было, поэтому я перешел к журналам приложений и служб => Microsoft => Windows => IIS-Configuration. Журналы здесь по умолчанию отключены, поэтому они должны быть включены. (Для этого щелкните журнал правой кнопкой мыши и выберите Включить журнал.) После включения повторите попытку установить идентификатор и обновите представление (панель действий или F5), и вуаля!, теперь у нас есть дополнительная информация об ошибке. В результатах были две ошибки (идентификатор события 42 и 43).
У меня были те же ошибки событий, что и в статье :
ID 42: Не удалось инициализировать поставщика шифрования ‘IISWASOnlyAesProvider’ в ‘? C:windowssystem32inetsrvconfigapplicationHost.config «. Пожалуйста, проверьте свою конфигурацию.
Идентификатор 43: не удалось зашифровать атрибут ‘Microsoft.applicationHost.AesProtectedConfigurationProvider’.
Затем я сделал следующее :
- восстановите старую версию файла ConfigEncKey.key (to
c:windowsSystem32inetsrvconfig
) - замените
<configProtectedData><providers>
раздел на старый (вc:windowsSystem32inetsrvconfigapplicationHost.config
)
Затем я могу снова установить пользовательский идентификатор для пула приложений.
Ответ №3:
Возникла аналогичная проблема. Переустановил диспетчер IIS и получил новый applicationHost.config Когда я выполнял WinDiff для новых и старых файлов, я заметил, что SessionKey были разными. Работает и сейчас. AesProvider и IISWASOnlyAesProvider