Автоматизация создания веб-сайта IIS7 с помощью олицетворения (с помощью Microsoft.Web.Administration) - PullRequest
1 голос
/ 27 июля 2011

Я пытаюсь создать сайт в IIS, используя этот код (с другого сайта на том же сервере)

using Microsoft.Web.Administration;
//...
ServerManager manager = new ServerManager();
manager.Sites.Add(Host, "http", ":80:" + Host, Path);
//...

Но я получаю это исключение:

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

Я пытался подражать так: http://www.codeproject.com/KB/cs/zetaimpersonator.aspx но затем я получаю ужасную ошибку COM.

Каков наилучший способ выдать себя за правильного пользователя или указать пользователя для запуска менеджера как.

Ответы [ 2 ]

4 голосов
/ 27 июля 2011

Чтобы использовать API ServerManager, вы должны быть локальным администратором на управляемой машине. Поскольку ваш код выполняется в контексте приложения IIS, это удостоверение пула приложений этого приложения, которое вам нужно изменить на административного пользователя (удостоверение по умолчанию в IIS 7.x - ApplicationPoolIdentity, который является непривилегированным пользователем).

Кроме того, вы можете включить олицетворение ASP.NET, добавив эти элементы в раздел <system.web> в файле Web.config:

<authentication mode="Windows" />
<identity impersonate="true" />

... и включив Windows Authentication для приложения IIS. Но обычно это делать не рекомендуется (см .: http://www.hanselman.com/blog/AvoidUsingImpersonationInASPNET.aspx).

0 голосов
/ 17 марта 2015

Возможно, ваша папка IISExpress зашифрована вашим пользователем и если вы откроете Visual как администратор, у вас не будет разрешения на доступ к файлу ...

C: \ Users :: ваш пользователь :: \ Documents \ IISExpress \ config

  1. Перейти в эту папку
  2. выбрать все файлы
  3. щелкните правой кнопкой мыши выбранные файлы
  4. нажмите в контекстном меню «Свойства»
  5. нажмите кнопку "Дополнительно ..."
  6. Снимите флажок «Зашифровать содержимое для защиты данных»
  7. нажмите ОК

и попробуйте еще раз ... у меня это сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...