Я пытаюсь получить ссылку на раздел 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().