1

为其他人记录这一点,因为我想通了并且在其他任何地方都找不到它:

问题/目标:
您尝试使用转换将节点插入到 web.config 中,但在打包/预览它时遇到错误,或者看到要插入多次的节点。

4

1 回答 1

1

解决方案:
您需要先创建该节点的父节点,因为它们可能不存在。这样,您可以确保它们存在,而无需忽略其他条目(如果它们确实存在),就像某些解决方案使用“删除”选项所做的那样。

这是我最近创建和测试的一个示例:

<system.webServer>
<!-- Creates the rewrite node if it does not exist yet (ensures it exists) -->
    <rewrite xdt:Transform="InsertIfMissing"/>
<!-- Creates the rules node inside the rewrite node if it does not exist yet -->
    <rewrite>
        <rules xdt:Transform="InsertIfMissing"/>
    </rewrite>
<!-- Inserts the new rule inside the rewrite/rules path -->
    <rewrite>
        <rules>
            <rule name="subdomain.domain.com Redirect" stopProcessing="false" xdt:Transform="Insert">
                <match url="^$"/>
                <conditions>
                    <add input="{HTTP_HOST}" pattern="subdomain.domain.com"/>
                </conditions>
                <action type="Redirect" redirectType="Permanent" url="http://domain.com/alias"/>
            </rule>
        </rules>
    </rewrite>
</system.webServer>

我希望这个对你有用!

于 2014-10-15T18:27:53.657 回答