Использование configSource с NWebsec - PullRequest
0 голосов
/ 16 ноября 2018

В попытке упростить нашу web.config я хотел разбить конфигурацию NWebsec на отдельный файл, используя атрибут configSource:

web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <sectionGroup name="nwebsec">
      <section name="httpHeaderSecurityModule" type="NWebsec.Modules.Configuration.HttpHeaderSecurityConfigurationSection, NWebsec, Version=4.2.0.0, Culture=neutral, PublicKeyToken=3613da5f958908a1" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <nwebsec configSource="App_Config\NWebsec.config" />
  <!--- remainder of file omitted for brevity -->
</configuration>

App_Config\NWebsec.config

<?xml version="1.0"?>
<nwebsec>
  <httpHeaderSecurityModule xmlns="http://nwebsec.com/HttpHeaderSecurityModuleConfig.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <redirectValidation enabled="true">
      <!-- omitted for brevity -->
    </redirectValidation>
    <securityHttpHeaders>
      <!-- omitted for brevity -->
    </securityHttpHeaders>
  </httpHeaderSecurityModule>
</nwebsec>

Когда я делаю запрос к приложению, я получаю ошибку HTTP 500 без каких-либо других подробностей. С программой просмотра событий Windows также ничего не связано.

Возможно ли то, что я пытаюсь сделать с помощью конфигурации NWebsec?

Как получить более подробную информацию об ошибке, которая возникает и вызывает ответ HTTP 500?

1 Ответ

0 голосов
/ 19 ноября 2018

Я считаю, что это потому, что элемент nwebsec определен как sectionGroup:

<sectionGroup name="nwebsec">
  <section name="httpHeaderSecurityModule" type="..." />
</sectionGroup>

Атрибут configSource работает только для элемента section.

Изменение web.config:

<nwebsec>
  <httpHeaderSecurityModule configSource="App_Config\NWebsec.config" />
</nwebsec>

В дополнение к внесению изменений в корневой элемент ссылочного файла (App_Config\NWebsec.config), позволяет работать так, как нужно:

<?xml version="1.0"?>
<httpHeaderSecurityModule xmlns="http://nwebsec.com/HttpHeaderSecurityModuleConfig.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <redirectValidation enabled="true">
  ...
...