我在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中提取一个部分。
如果你有任何关于这种可管理性的线索,请在下面发表评论。
答案 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
中,您会发现哪些元素/部分支持此属性;例如。 connectionStrings
和appSettings
。