如何从单独的文件中的web.config中提取节

时间:2018-05-30 13:03:05

标签: c# asp.net .net vb.net

我在Web.config中有以下部分:

 <httpProtocol>
  <customHeaders>
    <remove name="X-UA-Compatible" />
    <remove name="X-Frame-Options" />
    <remove name="X-XSS-Protection" />
    <remove name="X-Content-Type-Options" />
    <add name="X-UA-Compatible" value="IE=Edge" />
    <add name="X-Frame-Options" value="DENY" />
    <add name="X-XSS-Protection" value="1; mode=block"></add>
    <add name="X-Content-Type-Options" value="nosniff" />
  </customHeaders>
</httpProtocol>

我想将<customHeaders>提取到名为web.customer.customHeaders.config的配置文件中。为了实现这一点,我在web.customer.customHeaders.config所在的同一位置创建了Web.config文件,并在其中编写了以下XML:

<customHeaders>
    <remove name="X-UA-Compatible" />
    <remove name="X-Frame-Options" />
    <remove name="X-XSS-Protection" />
    <remove name="X-Content-Type-Options" />
    <add name="X-UA-Compatible" value="IE=Edge" />
    <add name="X-Frame-Options" value="DENY" />
    <add name="X-XSS-Protection" value="1; mode=block"></add>
    <add name="X-Content-Type-Options" value="nosniff" />
  </customHeaders>

我还在我的<customHeaders>文件中设置了Web.config部分:

 <httpProtocol>
  <customHeaders configSource="web.customer.customHeaders.config" />
</httpProtocol>

但遗憾的是,configSource属性无法识别。因此,无法读取提取的文件并将其插入到我的Web.config文件中。

我的问题是:如何在单独的文件中从web.config中提取一个部分。

如果你有任何关于这种可管理性的线索,请在下面发表评论。

1 个答案:

答案 0 :(得分:1)

并非所有部分都允许configSource属性; customHeaders就是这样的 Visual Studio用于验证例如内容的XSD架构。 web.config证实了这一点。 您可以在C:\Program Files (x86)\Microsoft Visual Studio 14.0\Xml\Schemas\1033\DotNetConfig.xsd中找到此文件(除非您安装在其他地方)。

customHeaders声明的片段显示没有configSource属性。

<xs:element name="customHeaders">
  <xs:complexType>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="add">
        <!-- ... -->
      </xs:element>
      <xs:element name="remove">
        <!-- ... -->
      </xs:element>
      <xs:element name="clear">
        <!-- ... -->
      </xs:element>
    </xs:choice>
    <xs:anyAttribute />
  </xs:complexType>
</xs:element>

DotNetConfig.xsd中,您会发现哪些元素/部分支持此属性;例如。 connectionStringsappSettings