Программная переработка пула приложений в IIS 10 / Windows Server 2019 - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь создать функцию, которая позволит пользователю перезагружать / перезагружать пул приложений по требованию для перезагрузки обновленных настроек сайта IIS, однако я сталкиваюсь с проблемой разрешений каждый раз, когда пытаюсь использовать ServerManagerfunction.

ServerManager serverManager = new ServerManager();
ApplicationPool appPool = serverManager.ApplicationPools[site_list.SelectedValue];
if (appPool != null) {
    if (appPool.State == ObjectState.Stopped) {
        appPool.Start();
    } else {
        appPool.Recycle();
    }
}

Каждый раз, когда я запускаю код, я получаю следующую ошибку:

Имя файла: redirection.config Ошибка: невозможно прочитать файл конфигурации из-за недостаточных прав доступа

Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.UnauthorizedAccessException: Имя файла: redirection.config Ошибка: не удается прочитать файл конфигурации из-за недостаточных разрешений

ASP.NET не авторизован для доступа к запрошенному ресурсу. Рассмотрите возможность предоставления прав доступа к ресурсу для удостоверения запроса ASP.NET. ASP.NET имеет базовый идентификатор процесса (обычно {MACHINE} \ ASPNET в IIS 5 или Network Service в IIS 6 и IIS 7 и настроенный идентификатор пула приложений в IIS 7.5), который используется, если приложение не олицетворяет собой. Если приложение выполняет олицетворение с помощью идентификатора, это будет анонимный пользователь (обычно IUSR_MACHINENAME) или пользователь с проверенным запросом.

Чтобы предоставить ASP.NET доступ к файлу, щелкните правой кнопкой мыши файл в проводнике и выберите«Свойства» и выберите вкладку «Безопасность». Нажмите «Добавить», чтобы добавить соответствующего пользователя или группу. Выделите учетную запись ASP.NET и установите флажки для требуемого доступа.

Я попытался предоставить разрешения на чтение файла redirection.config любому / всем следующим пользователям без изменений:

  • ASPNET
  • СЕТЕВАЯ СЛУЖБА
  • IUSR
  • IIS_IUSRS

У кого-нибудь есть какие-либо идеи о том, какутилизировать AppPool через код?

1 Ответ

0 голосов
/ 08 ноября 2019

Я могу заставить его работать, если установить идентификацию пула приложений на LocalSystem и анонимную аутентификацию-> Редактировать-> Использовать идентификацию пула приложений.

enter image description here

enter image description here enter image description here

Я думаю, что если вы не хотите использовать LocalSystem, вы должны предоставить специальное разрешение дляC: \ Windows \ System32 \ inetsrv \ config папка и корневая папка вашего приложения. Это также снизит безопасность вашего компьютера.

Монитор Microsoft Process может помочь вам предоставить разрешение NTFS. Вы можете добавить фильтр для «имя процесса = w3wp.exe» и «результат = доступ запрещен».

https://docs.microsoft.com/en-us/sysinternals/downloads/procmon

...