Почему я не могу открыть пользовательский файл web.config в моем веб-приложении ASP?

1

Я не знаю почему, но я не могу открыть файл web.config в моем ASP-проекте. Я добавляю файлы конфигурации в свой проект для установки страниц авторизации.

И мне нужно открыть эти страницы для обновления имен "Роли" на моей странице администратора.

Я следую образцу от microsoft, он должен работать нормально:

http://msdn.microsoft.com/en-us/library/vstudio/4c2kcht0(v=vs.100).aspx

Вот мой код С# я use:

//Open the web.config custom
Configuration config  = WebConfigurationManager.OpenWebConfiguration("~/WebAuthorizationPilotageGeneral") as Configuration;

//Get the authorization section

// section is always == NULL !!!!

-> section = (System.Web.Configuration.AuthorizationSection)config.GetSection("authorization");

//Remove all Roles before add news Roles
section.Rules.Clear();
autho = new System.Web.Configuration.AuthorizationRule(System.Web.Configuration.AuthorizationRuleAction.Allow);
foreach (string role in Roles.GetAllRoles())
{
     if (role != ttbx_RoleName.Text)
     {
          autho.Roles.Add(role);
     }
}

//Add the news Roles
section.Rules.Add(autho);
//Save the web.config custom
config.Save(ConfigurationSaveMode.Full, true);

Мой пользовательский файл web.config, я пытаюсь загрузить для обновления раздел "авторизация"

<!-- WebAuthorizationPilotageGeneral.config - access pilotage page -->
<authorization>
  <allow roles="Administrator" />
  <allow roles="Audit" />
  <allow roles="Copil" />
  <allow roles="System" />
  <allow roles="User" />
  <allow roles="visitor" />
  <deny users="*" />
</authorization>

Странные вещи после загрузки конфигурационного файла, мой конфигурационный объект все еще имеет 22 раздела и должен иметь только один => "авторизация", он похож на мой корневой файл my (web.config), а не файл конфигурации (WebAuthorizationPilotageGeneral).

Изображение 174551

UPDATE: я пытаюсь поместить мои 4 файла конфигурации только в одну папку Изображение 174551

Файл Web.config Изображение 174551

Теги:
web-config

1 ответ

0
Лучший ответ

В примерах MS используется относительный путь конфигурации без символа "~". Вы пытались его удалить?

// Set the root path of the Web application that contains the
// Web.config file that you want to access.
string configPath = "/MyAppRoot";

// Get the configuration object to access the related Web.config file.
Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);
  • 0
    да, извините, я просто попробуйте еще раз сейчас с "/ WebAuthorizationPilotageGeneral", но все тот же результат ..
  • 0
    Поэтому я считаю, что вы используете это неправильно. Они говорят: «Установите корневой путь веб-приложения, содержащего файл Web.config, к которому вы хотите получить доступ». Попробуйте переместить ваш конфигурационный файл в новую подпапку, назовите его web.config и укажите путь к «/ subfolder». Я думаю, что сейчас загружается ваш полный web.config.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню