Мне нужно программно переработать пул приложений IIS (версия 7.5) с помощью С#. Когда я пытаюсь получить ApplicationPoolCollection с помощью класса ServerManager, возникает исключение UnauthorizedAccessException. Думаю, мне придется использовать олицетворение. Но я не знаю, как использовать олицетворение. И можно ли вообще использовать олицетворение с атрибутом вместо web.config?
Перезапуск пула приложений IIS
Ответы:
Для выполнения любых административных операций в IIS, таких как перезапуск пулов приложений, запуск и остановка сайтов, создание веб-сайтов и т. д., вам необходимо работать от имени администратора.
Если вы хотите программно олицетворять пользователя, вам нужно использовать ссылку WindowsIdentity.Impersonate
метод.
Там есть достаточно хороший фрагмент примера кода, чтобы вы могли начать.
Конечно, здесь применяются все обычные предостережения, когда речь идет о хранении учетных данных для пользователей с высоким уровнем привилегий в вашем файле web.config
(или жестко запрограммированном).
Кроме того, если вы пытаетесь отладить код, который программно обращается к IIS с помощью управляемого ServerManager
API, убедитесь, что вы запускаете Visual Studio, выполнив «Запуск от имени администратора». Вам необходимо сделать это, даже если ваша собственная учетная запись Windows является членом группы администраторов.