Сегодня я делаю следующее, чтобы синхронизировать два веб-сервера, но пропускаю все настройки сайта:
msdeploy -verb:sync -source:webServer -dest:webServer,computerName=web25:8080
-skip:objectName=section,absolutePath=system.applicationHost/sites
-skip:objectName=section,absolutePath=system.applicationHost/applicationPools
Тем не менее, это эффективно также пропускает siteDefaults, которые я люблю синхронизировать (system.applicationHost/sites/siteDefaults
)
Кажется, нет способа «включить» раздел, чтобы переопределить директиву пропуска. И, похоже, нет способа синхронизировать только раздел siteDefaults из applicationHost, поскольку исходный appHostConfig, похоже, синхронизирует только указанный сайт, а не siteDefaults.
Возможно, можно «пропустить», используя выражение Xpath или подобное, чтобы пропустить только узлы, но включить, но я нахожу документацию немного запутанной, а мой Xpath заржавел.
Я сам нашел решение:
msdeploy -verb:sync -source:webServer -dest:webServer,computerName=web25:8080
-skip:xPath=//site
-skip:objectName=section,absolutePath=system.applicationHost/applicationPools
Надеюсь, это кому-то поможет. Я так и не понял, как выглядит все дерево XPath, и документация по нему кажется скудной. Однако // сайт показался мне достаточно уникальным для моих нужд.