有没有办法使用转换"插入"新的部分到Web.Config?

Pau*_*own 17 asp.net xslt web-config-transform xdt-transform

在我的Web.Config中,我有以下内容

  <system.webServer>

    <modules>
       **some code**
    </modules>
    <handlers>
       **some code**    
    </handlers>

  </system.webServer>
Run Code Online (Sandbox Code Playgroud)

如何对其进行转换,以便将"安全性"的新子节点注入"system.webServer"?到目前为止,我尝试和搜索过的所有内容都失败了.

我想要的是如下所示:

  <system.webServer>

    <modules>
       **some code**
    </modules>
    <handlers>
       **some code**    
    </handlers>

    <security>
      <ipSecurity allowUnlisted="false" denyAction="NotFound">
        <add allowed="true" ipAddress="10.148.176.10" />
      </ipSecurity>
    </security>

  </system.webServer>
Run Code Online (Sandbox Code Playgroud)

Pau*_*own 36

找到了有效的解决方案.在我的Web.Azure.Config文件中,我必须添加以下内容:

  <system.webServer>
    <security xdt:Transform="Insert">
      <ipSecurity allowUnlisted="false" denyAction="NotFound">
        <add allowed="true" ipAddress="10.148.176.10" />
      </ipSecurity>
    </security>
  </system.webServer>
Run Code Online (Sandbox Code Playgroud)

我在发布问题之前尝试了这个,但是由于在Web.Config的另一部分中出现了拼写错误,这是错误的.

  • 为了清晰起见,重要的部分是`xdt:Transform =“ Insert”`。具有此属性的任何元素都将插入到输出中。别忘了,您可以在VS中使用“预览变换”来快速查看变换是否具有您期望的效果。 (3认同)