msdeploy:忽略allowuntrusted

时间:2013-05-13 11:22:24

标签: windows-server-2008-r2 msdeploy

我有一台机器[A]运行Win2008 R2的全新安装,它在IIS上运行一个webapp。我尝试在机器[B]上使用msdeploy命令行工具将部署包发布到此机器,但我继续收到有关证书的错误。 我正在使用-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

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

Error: A '-dest' argument must be specified with the 'sync' verb.
Error count: 1.

有什么想法吗?

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

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

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

2 个答案:

答案 0 :(得分:6)

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

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

  2. 在“-dest”之前放置“-allowUntrusted:true”而不是在结尾处。不知道为什么它可以在一台而不是另一台机器上工作。

  3. 希望这有助于节省一些时间:)

答案 1 :(得分:1)

我发现命令存在一些问题:

除非您更改了默认端口,否则应使用8172而不是8173.

其次在securepassword之前有双引号,但我没有看到收盘双引号。

您的软件包很可能有一些默认参数,您必须在部署期间为其指定值。

msdeploy.exe -verb:sync -source:package="Web.zip" -dest:auto,ComputerName=https://machineA:8172/msdeploy.axd?site=app.com,UserName="AdminUser",Password="SecurePassword",AuthType="Basic" -allowUntrusted -setParam:paramname=value