Я пытаюсь создать функцию, которая позволит пользователю перезагружать / перезагружать пул приложений по требованию для перезагрузки обновленных настроек сайта 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 через код?