Создание виртуального каталога и установка разрешений IIS7 - невозможно прочитать файл конфигурации из-за недостаточных разрешений - PullRequest
1 голос
/ 20 марта 2010

Я пытаюсь создать виртуальный каталог и установить его разрешения с помощью IIS7 и C #. Вот пример моего кода:

using (ServerManager serverManager = new ServerManager(webSite))
{
    ConfigurationSection anonymousAuthenticationSection =
      config.GetSection(
          @"system.webServer/security/authentication/anonymousAuthentication",
          webSite);
    anonymousAuthenticationSection["enabled"] = true;

    serverManager.CommitChanges();
    return "true";
}

Это вызывает исключение и сообщение:

Cannot read configuration file due to insufficient permissions.

Может кто-нибудь помочь?

EDIT

Запуск с правами администратора дает мне новую ошибку: «Включить чтение файла конфигурации» Может кто-нибудь сказать мне, какую конфигурацию он должен читать и как я могу получить к ней доступ?

Ответы [ 2 ]

0 голосов
/ 30 марта 2010

Я неправильно использовал объект ServerManager. Он не ожидал название сайта в конструкторе. Ниже приведен правильный способ установки анонимного доступа в IIS7.

using (ServerManager serverManager = new ServerManager())
                {
                    Configuration config = serverManager.GetApplicationHostConfiguration();
                    ConfigurationSection anonymouseAuthenticationSetion =                                            config.GetSection("system.webServer/security/authentication/anonymousAuthentication", webSite);
                    anonymouseAuthenticationSetion["enabled"] = true;
0 голосов
/ 21 марта 2010

Похоже, ваше приложение не имеет правильных разрешений. Чтобы иметь возможность манипулировать конфигурацией IIS7, учетная запись, под которой работает ваше приложение, должна быть учетной записью администратора или учетной записью, которая распознается базой доверенных компьютеров, такой как учетная запись SYSTEM.

Если вы отлаживаете это в Visual Studio, обязательно запустите Visual Studio с помощью функции " Запуск от имени администратора " в проводнике или с панели быстрого запуска.

...