将 configSource 与 NWebsec 一起使用

Using configSource with NWebsec

为了简化我们的 web.config,我想使用 configSource 属性将 NWebsec 配置分解到一个单独的文件中:

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 响应的错误的更多详细信息?

我相信这是因为 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">
  ...