我们有两台 IIS 8.5 Web 服务器,Server 2012 R2
服务器1
服务器2
我正在尝试找到一个 powershell 命令,它只会将 Server1 上所做的更改同步到 Server2
我尝试了共享配置,但这也会同步绑定,我不希望这样,因为它们是负载平衡的。此外,我还试图避免向服务器添加不必要的绑定以使其正常工作。
我发现了几个 webdeploy powershell 命令,但它们看起来也想同步文件,我们使用 DFS 来同步文件。
我想要做的就是将 Server1 applicationhost.config 或 web.config 中的更改同步到 Server2
答案1
知道了(确保您正在使用 CMD ADMIN 和 Powershell ADMIN)
使用 CMD,它将无法在 powershell 中工作,不确定为什么它不起作用。
msdeploy -verb:sync -source:webserver,computerName=acd-pv01 -dest:webserver,computerName=acd-pv02 -skip:skipAction=Delete,objectName=binding -skip:skipAction=AddChild,objectName=binding
简要概述
网上有几篇关于自定义规则 replaceipbindings 的帖子
但是该类型无效,这是一个尚未修复的错误。
因此,您必须将 -skip:skipAction 添加到命令行以使其工作并使用 objectName=binding
1 问题是,如果你创建了一个新网站,配置会被带过来,但是绑定信息不会,因为你告诉它不要这样做
因此使用 powershell 进行修复
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.applicationHost/sites/site[@name='SITENAME']/bindings" -name "." -value @{protocol='http';bindingInformation='IPADDRESS:80:SITENAME'}