получить ссылку на раздел customErrors ASP.NET web.config

Я пытаюсь получить ссылку на раздел customErrors web.config. Когда я использую следующий код, я всегда получаю ноль. У меня нет этой проблемы, когда я получаю ссылку на пользовательский раздел, который я создал, поэтому я немного ошеломлен, почему это не сработает.

CustomErrorsSection customErrorSection =
    ConfigurationManager.GetSection("customErrors") as CustomErrorsSection;

Я также пробовал это:

CustomErrorsSection customErrorSection = 
    WebConfigurationManager.GetSection("customErrors") as CustomErrorsSection;

Я также пробовал это:

CustomErrorsSection customErrorSection =
    WebConfigurationManager.GetWebApplicationSection("customErrors") as CustomErrorSection;

РЕДАКТИРОВАТЬ:

АРХ! Так обстоит дело с большинством вещей, на которые я нашел ответ сразу после того, как задал вопрос.

Это работает для меня:

System.Configuration.Configuration configuration = WebConfigurationManager.OpenWebConfiguration("/");
CustomErrorsSection customErrorsSection = (CustomErrorsSection)configuration.GetSection("system.web/customErrors");

Или проще так:

CustomErrorsSection customErrors = (CustomErrorsSection) WebConfigurationManager.OpenWebConfiguration("/").GetSection("system.web/customErrors");

Это также работает:

CustomErrorsSection customErrorsSection = ConfigurationManager.GetSection("system.web/customErrors") as CustomErrorsSection;

Итак, я думаю, теперь я понимаю, почему у меня возникла проблема в первую очередь. Я ошибочно полагал, что могу получить ссылку на раздел customErrors, попробовав GetSection("customErrors"), но мне не удалось указать, в каком корневом разделе он находится, и я основывал свои попытки на том факте, что знал, как получить пользовательский раздел, когда я не понял, что мой пользовательский раздел был корнем раздела, поэтому мне не нужно было добавлять что-то вроде system.Web/ перед ним, когда я вызывал GetSection().


person Frank Hale    schedule 25.11.2011    source источник
comment
Возможно глупый вопрос, но существует ли этот раздел в вашем файле конфигурации?   -  person Oded    schedule 25.11.2011
comment
Законно и может помочь другим. Не удаляйте его.   -  person Oded    schedule 25.11.2011
comment
Спасибо! Я был ошеломлен, потому что получение раздела customError отличалось от получения пользовательского раздела. Я полагал, что это будет то же самое.   -  person Frank Hale    schedule 25.11.2011


Ответы (1)


Попробуй это:

var configuration = WebConfigurationManager.OpenWebConfiguration("~/Web.config");

// Get the section.
CustomErrorsSection customErrors =
    (CustomErrorsSection)configuration.GetSection("system.web/customErrors");

Подробнее по этой теме здесь: CustomError Class

person Leniel Maccaferri    schedule 25.11.2011
comment
Спасибо! Я потратил некоторое время на поиски, вернулся на страницу Microsoft сразу после публикации и обнаружил, что прокручивал недостаточно далеко в первые пару раз, когда попадал на страницу. Иногда вы так расстраиваетесь, пытаясь найти ответ, что не можете мыслить достаточно ясно, чтобы интерпретировать материал, который вы ищете. - person Frank Hale; 25.11.2011
comment
Я отмечу ваш ответ как правильный, но ваш фрагмент кода показывает только часть решения, на которое вы ссылаетесь. Вы не вставили часть, в которой указано, откуда берется конфигурация. - person Frank Hale; 25.11.2011
comment
конфигурация = WebConfigurationManager.OpenWebConfiguration(~/Web.config); CustomErrorsSection - person ; 30.04.2014
comment
@Darren Спасибо за добавление недостающей части! :) Обновил ответ. - person Leniel Maccaferri; 30.04.2014