在applicationHost.config中,configSource可以替代吗?

时间:2018-11-20 20:45:36

标签: iis url-rewriting applicationhost configsource

使用IIS中的ARR(应用程序请求路由)对ASP.NET站点进行负载平衡。相应的URL重写规则位于 applicationHost.config 中。

有什么办法可以在新的配置文件中分隔此规则?不再支持标签configSource。我了解了childSource标记,但仅在部分中支持。

这是 applicationHost.config 中的规则:

<system.webServer>
        <rewrite>
            <globalRules>
                <rule name="ARR_TestFarm_loadbalance" patternSyntax="Wildcard" stopProcessing="true">
                    <match url="*" />
                    <action type="Rewrite" url="http://TestFarm/{R:0}" />
                </rule>
            </globalRules>
        </rewrite>
</system.webServer>

1 个答案:

答案 0 :(得分:1)

我敢打赌,在这种情况下,您希望在测试/本地开发和生产/部署方案之间具有不同的配置设置。

我通常使用config转换来实现这一点,并且效果很好。像这样:

您的app.config文件基本上成为模板。对于给出的示例,您的示例可能类似于以下内容:

...
<system.webServer>
        <rewrite>
            <globalRules>
                <rule>
                </rule>
            </globalRules>
        </rewrite>
</system.webServer>
...

然后,创建另一个文件,将其命名为app.local.config,如下所示:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <system.webServer>
            <rewrite>
                <globalRules>
                    <rule xdt:Transform="Replace">
                        <!-- local rule -->
                    </rule>
                </globalRules>
            </rewrite>
    </system.webServer>
</configuration>
...

和另一个名为app.release.config

的文件
...
<system.webServer>
        <rewrite>
            <globalRules>
                <rule xdt:Transform="Replace" name="ARR_TestFarm_loadbalance" patternSyntax="Wildcard" stopProcessing="true">
                    <match url="*" />
                    <action type="Rewrite" url="http://TestFarm/{R:0}" />
            </rule>
            </globalRules>
        </rewrite>
</system.webServer>
...

您可以在此处找到有关转换的文档:https://docs.microsoft.com/en-us/previous-versions/dd465326(v=vs.100)

VS在转换文件时内置了一些规则,但是IIRC仅适用于web.configs。 FastKoala的添加将允许app.config转换以及在构建时进行转换的功能https://marketplace.visualstudio.com/items?itemName=JonDaviswijitscom.FastKoala-WebAppconfigXMLtransforms