今天我执行以下操作来同步两个网络服务器但跳过所有站点配置:
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
)
似乎没有办法“包含”某个部分,以覆盖 skip 指令。而且似乎也没有办法只同步 applicationHost 中的 siteDefaults 部分,因为源 appHostConfig 似乎只同步指定站点,而不同步 siteDefaults。
也许可以使用 Xpath 表达式或类似表达式来“跳过”,仅跳过节点,但包括,但我发现文档有点令人困惑,而且我的 Xpath 生疏了。
答案1
我自己找到了一个解决方案:
msdeploy -verb:sync -source:webServer -dest:webServer,computerName=web25:8080
-skip:xPath=//site
-skip:objectName=section,absolutePath=system.applicationHost/applicationPools
希望这对某些人有帮助。我从来没有真正弄清楚整个 XPath 树是什么样子的,而且它的文档似乎很少。但是,//site 似乎足够独特,可以满足我的需求。