msdeploy:忽略allowuntrusted

Ele*_*ena 3 msdeploy windows-server-2008-r2

我有一台机器[A]运行Win2008 R2的全新安装,它在IIS上运行一个webapp.我尝试msdeploy在机器[B]上使用命令行工具将部署包发布到此机器,但我继续收到有关证书的错误.我正在使用-allowuntrusted,但它仍然继续给出同样的错误.

我一直在尝试不同的事情(比如在IIS上更改msdeploy端口,在另一台机器上安装证书,重新安装iis角色,大量其他机器)2天,绝对没有运气.

这是我运行的:

msdeploy.exe -verb:sync -source:package="Web.zip" -dest:auto,ComputerName="https://machineA:8173/msdeploy.axd?site=app.com",UserName="AdminUser",Password="SecurePassword",AuthType="Basic" -allowUntrusted
Run Code Online (Sandbox Code Playgroud)

为了使事情更有趣,这是我在包含IIS的机器上运行相同命令时获得的(即使在更改dest同步后):

Error: A '-dest' argument must be specified with the 'sync' verb.
Error count: 1.
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑:我尝试在Visual Studio 2012中使用相同的设置(ip,包,身份验证)来创建部署的发布配置文件.点击"验证连接"后,我得到一个弹出窗口,询问我是否要接受此不受信任的证书.我点击是并继续发布 - 这很好.

有没有办法使用msdeploy命令行获得此行为?使用VS2012不是我的选择,因为发布必须自动完成.

编辑2:乐趣继续:它适用于另一台Windows Server 2008 R2目标机器(虽然不是一个干净的安装).那么,魔术复选框在哪里?:)

Ele*_*ena 6

所以,我设法找出了2个解决方案:

  1. 获得一个有效的证书(我们在公司有一个,所以在机器[B]上玩主机以匹配IP与公司的域,帮助).

  2. 将"-allowUntrusted:true"置于"-dest"之前而不是最后.不知道为什么它可以在一台机器上运行而在另一台机器上运行.

希望这可以帮助别人节省一些时间:)

  • -allowUntrusted可以放在任何地方.如果它在"-dest"之前工作那么这意味着你有双引号或连字符本身的问题,这使得msdeploy.exe看不到传递给它的allowuntrusted.例如从word doc或outlook email复制的连字符 (2认同)