Назад | Перейти на главную страницу

Веб-развертывание (msdeploy), синхронизация всего, кроме сайтов и пулов (но включая siteDefaults)

Сегодня я делаю следующее, чтобы синхронизировать два веб-сервера, но пропускаю все настройки сайта:

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, и документация по нему кажется скудной. Однако // сайт показался мне достаточно уникальным для моих нужд.