3

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

我已经尝试了 2 天不同的事情(比如更改 IIS 上的 msdeploy 端口、在另一台机器上安装证书、重新安装 iis 角色等),但绝对没有运气。

这就是我运行的:

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 更改为 sync 之后):

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 目标机器上运行(虽然不是全新安装)。那么,神奇的复选框在哪里?:)

4

2 回答 2

6

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

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

  2. 将“-allowUntrusted:true”放在“-dest”之前而不是最后。不知道为什么它可以在一台机器上运行,但不能在另一台机器上运行。

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

于 2013-05-14T07:53:30.950 回答
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
于 2013-05-14T02:31:06.177 回答