使用MSDEPLOY

时间:2016-08-13 19:21:25

标签: package azure-devops iis-8 msdeploy

我已经构建了我的软件包,并通读了这些文档@ http://www.asp.net/web-forms/overview/deployment/web-deployment-in-the-enterprise/deploying-web-packages

似乎表明问题应该从这里开始相对简单,因为说明清楚地显示了......

[project name].deploy.cmd [/T | /Y]
                          [/M:<computer name>]
                          [/A:<Basic | NTLM>]
                          [/U:<user name>]
                          [/P:<password>]
                          [/L]
                          [/G:<true | false>]
                          [Additional MSDeploy.exe flags]

..所以,没问题,我想我会给这样的命令参数......

myproj.deploy.cmd /Y /M:test.foo.com /A:basic /U:<my user> /P:<my pass>

...用户和通行证是我服务器上的管理员帐户。

由于某种原因,这会产生401 ......

Error code: EEROR_USER_NOT_ADMIN
More Information: Connected to 'server' using the Web Deployment Agent Service but could not authorize. Make sure you are an administrator on 'server'

......好吧,我使用了我的管理员凭据,与VS一起用于单击部署的管理员凭据相同,他们在VS中工作,那么在推送包时他们怎么没有在命令行上工作?

...

编辑:

我查看了日志,检查了它正在生成的ms deploy命令,并决定完全跳过cmd文件并直接自行部署ms。

我找到了它生成的命令,并将其清理成类似的东西......

msdeploy.exe
  -source:package='..\package.zip' 
  -dest:auto,computerName=test.foo.com,userName=<me>,password=<my pass>,authtype=basic,includeAcls=False 
  -verb:sync 
  -disableLink:AppPoolExtension 
  -disableLink:ContentExtension 
  -disableLink:CertificateExtension 

显然我的帐户在此上下文中使用时不是管理员(完全谎言或者我错过了某些内容)。

这就是technet对它的评价:https://technet.microsoft.com/en-gb/library/dd569106(v=ws.10).aspx

链接到此:https://technet.microsoft.com/en-gb/library/dd569001(v=ws.10).aspx

指出......

  

Web部署工具不执行本地模拟。如果你   提供用户名和密码提供程序设置的值,但这样做   不指定computerName的远程计算机的名称   设置,您提供的凭据将不起作用。

这是否意味着因为我指定了域名而不是机器名称,我指定的凭据被忽略了?

如果是这样......我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

无论如何显然没有文件......答案是......

您无法在同一台计算机上运行与MSDeploy服务通信的MS部署命令。

不知道为什么,这没有任何意义,但是使用相同的命令并在另一个盒子上执行它似乎工作正常,即使部署到我遇到问题的同一个盒子。

微软做得好......让团队服务管理员的生活成为梦想的方式!