TFS 2012团队构建和Web应用程序部署-ERROR_USER_NOT_ADMIN

3
我们有一个解决方案,由几个类库和一个 Web 应用程序项目组成。我们使用 TFS 2012 和 Team Build。在构建服务器上,解决方案可以正确编译。
我目前正在尝试通过 MSBuild 参数来完成这个过程。
/p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:CreatePackageOnPublish=False /p:MSDeployPublishMethod=RemoteAgent /p:MsDeployServiceUrl=https://testWebServer:8172/MsDeploy.axd?site=direct /p:AllowUntrustedCertificate=True /p:DeployIisAppPath="direct" /p:AuthType=NTLM
解决方案可以构建但无法部署,我收到以下错误信息:
msdeploy error ERROR_DESTINATION_INVALID:Web 部署任务失败。(无法连接到远程计算机("https")。确保远程计算机名称正确,并且您能够连接到该计算机。详情请参见:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_INVALID.) [C:\Builds\1\ProjectName\Solution General Build\Sources\Temp Source\ProjectName\Solution\Project.csproj]
是否还有其他参数需要传递以指定服务器?我没有打算让 https 成为服务器名称...我已经尝试省略了 https:// 返回相同的错误,所以它肯定是从某个地方得到的值。
我尝试了以下 MsDeployServiceUrl 的值:
- https://testWebServer:8172/MsDeploy.axd?site=direct - https://testWebServer:8172/MsDeploy.axd - "https://testWebServer:8172/MsDeploy.axd?site=direct" - https://192.168.X.X:8172/MsDeploy.axd?site=direct - "https://192.168.X.X:8172/MsDeploy.axd?site=direct" - testWebServer:8172/MsDeploy.axd?site=direct
更新
好的,至少以下内容可以连接:
/p:MsDeployServiceUrl=testWebServer 我看到了很多关于这个特定参数的帖子,几乎都是 URL,而不仅仅是主机名(那些看起来像主机名的我认为只是为了简洁而写的)。

然而,我现在面临一个新问题。我已经将Build Service Account(域帐户)设置为Web服务器上的本地管理员,并且我收到了msdeploy error ERROR_USER_NOT_ADMIN以及安全日志中的审核失败。

解决方案

这是我目前使用的MSBuild参数。
/p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:CreatePackageOnPublish=False /p:MSDeployPublishMethod=WMSvc /p:MsDeployServiceUrl="https://SERVER:8172/MsDeploy.axd" /p:AllowUntrustedCertificate=True /p:DeployIisAppPath="siteName"

现在我得到了ERROR_USER_UNAUTHORIZED错误。显然,我要么没有正确设置委派,要么我创建的IIS Manager用户有误。无论如何,如果需要,这将在另一篇文章中讨论。


1
你尝试过将URL放在双引号内吗?似乎它会在冒号处被截断! - drk
确实是这样。 我更新了我的帖子并列出了一些我尝试过的值。 我相信还有其他值我也尝试过,但我记不清了... - CodeWarrior
2个回答

3
您使用的是哪个服务器和IIS版本? IIS 6 使用 Web Deployment Agent Service (MsDepSvc),而 IIS 7 通常使用不同 URL 的 Web Management Service (WMSvc)(此外,您必须是目标服务器上的管理员才能执行 MsDepSvc)。
请尝试指定。
/P:MSDeployPublishMethod=WMSvc

根据Troy Hunt的这篇文章,Web管理服务(WMSvc)正在使用。
.axd 

您正在尝试强制使用RemoteAgent发布方法,但它似乎不一致,而应该使用指定的URL(网址)。

请参阅此文章了解WMSvcRemoteAgent发布方法之间的完整差异集。


在这种情况下,您很可能需要使用/P:MSDeployPublishMethod=WMSvc(这是IIS7的默认设置)。我建议您首先尝试使用控制台msdeploy客户端连接,以确保目标服务器上的msdeploy服务正在运行。 - Isantipov
你有几分钟时间聊天吗?我可以创建一个聊天室,而不是在这个区域里来回填充信息。 - CodeWarrior
命令行返回错误目标不可达。我已验证服务正在运行(net start wmsvc),并且我已完全禁用了两台机器上的防火墙,以查看是否可以使其正常工作。但没有成功。 - CodeWarrior
在运行此帖子 http://forums.iis.net/post/1960329.aspx 中的命令后,重新安装了 Web Deploy 工具。现在我已经连接上了,但是没有授权。我将继续关闭此帖子,因为我已经克服了之前的问题。如果我仍然遇到未经授权的错误,我可能会创建一个新的帖子。 - CodeWarrior
你能聊几分钟吗?我可以创建一个聊天室,而不是在这个区域来回填充... 当然可以。你可以通过Skype ivan.antsipau联系我,或者给出一个你选择的聊天室链接。 - Isantipov
你最终解决了“ERROR_USER_UNAUTHORIZED”吗?我遇到了与上述相同的问题。我按照这个做,但仍然出现错误。我的参数:/p:DeployOnBuild=true;PublishProfile=Dev /p:AllowUntrustedCertificate=True /p:UserName=”” /p:AuthType=NTLM /P:MSDeployPublishMethod=WMSvc - fhilton

1

我遇到了类似的问题,为了解决这个问题,我尝试了以下步骤:

  1. 由于是托管服务器,我们必须确保端口8172是开放的(显然)。
  2. 创建一个新的登录并在IIS中设置它 -> 部署 -> 配置 -> 在目标服务器上配置Web Deploy发布。我确保密码中没有任何空格,以避免引号问题。
  3. 从构建服务器实际运行手动部署。
  4. 最后在MSDeployServicerl中指定IP地址: /p:MsDeployServiceUrl=xxx.xxx.xxx.xxx:8172/msdeploy.axd

对我来说,网站名称都无法使用。我的参数中没有引号。当然,如果您在一个参数中错误地留下了空格,您将收到以下错误: MSBUILD: 错误 MSB1008:只能指定一个项目


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接