2013-05-13 262 views
3

我有一台机器[A]运行全新安装的Win2008 R2,它在IIS上拥有一个webapp。我尝试在机器上使用命令行工具msdeploy [B]将部署包发布到本机,但我一直在获取有关证书的错误。 我正在使用-allowuntrusted,但它仍然一直给出相同的错误。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的目标机器(不干净的安装虽然)上。那么,魔术复选框在哪里? :)

回答

4

所以,我设法弄清楚2个解决方案:

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

  2. 地方 “-allowUntrusted:真正的” BEFORE “-dest”,而不是结尾。不知道为什么它在一台机器上工作,而不是另一台机器上。

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

+2

-allowUntrusted可以放在任何地方。如果它在“-dest”之前工作,那么这意味着你有双引号或连字符本身的问题,这使得msdeploy.exe不能看到传递给它的allowuntrusted。如从Word doc或Outlook电子邮件复制的连字符 – 2013-05-14 16:15:46

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 
+0

我在试图使事情工作改变了口。由于我获得证书而不是“目的地不可达”错误,因此我假设连接经历的很好。甚至通过注册表查看端口更改是否适用于任何地方。 双引号:对不起,我的错。修正了原来的问题,报价也出现在真正的查询中(只是检查了脚本)。 至于其他参数,我在构建部署包(使用msbuild和一堆参数)时指定了它们,因此我不在此处添加其他任何内容。 正如我所说,这个命令在另一台机器上工作。 – Elena 2013-05-14 06:16:30