Есть ли альтернатива configSource в applicationHost.config? - PullRequest
0 голосов
/ 20 ноября 2018

Сайт ASP.NET сбалансирован по нагрузке с использованием ARR (Application Request Routing) в IIS.Соответствующее правило перезаписи 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 голосов
/ 05 декабря 2018

Готов поспорить, что у вас есть условие, при котором вы хотите иметь разные настройки конфигурации между тестированием / локальной разработкой и сценарием производства / развертывания.

Обычно для этого я использую преобразования конфигурациии это работает довольно хорошо.Идет примерно так:

Ваш 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

...