我已经构建了我的软件包,并通读了这些文档@ 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的远程计算机的名称 设置,您提供的凭据将不起作用。
这是否意味着因为我指定了域名而不是机器名称,我指定的凭据被忽略了?
如果是这样......我该怎么做呢?
答案 0 :(得分:2)
无论如何显然没有文件......答案是......
您无法在同一台计算机上运行与MSDeploy服务通信的MS部署命令。
不知道为什么,这没有任何意义,但是使用相同的命令并在另一个盒子上执行它似乎工作正常,即使部署到我遇到问题的同一个盒子。
微软做得好......让团队服务管理员的生活成为梦想的方式!