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

#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