3

我们有一个由几个类库和一个 Web 应用程序项目组成的解决方案。我们将 TFS 2012 与 Team Build 一起使用。该解决方案在构建服务器上正确编译。

我目前正在尝试通过 MSBuild Arguments 来做到这一点。

/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_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,而不仅仅是一个主机名(那些似乎是主机名的那些我认为只是为了简洁而写成这样)。

然而,我现在面临一个新问题。我已经在网络服务器上创建了构建服务帐户(域帐户)本地管理员,并且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 管理器用户不正确。无论如何,如有必要,将在不同的帖子中进行。

4

2 回答 2

3

您使用的是什么服务器和 IIS 版本?IIS 6 使用Web 部署代理服务 (MsDepSvc),而 IIS 7 通常使用具有不同 URL 的Web 管理服务 (WMSvc)(此外,您必须是目标服务器上的管理员才能执行 MsDepSvc。

你可以尝试指定

/P:MSDeployPublishMethod=WMSvc

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

.axd 

URL(您指定的),而您试图强制它使用似乎不一致的RemoteAgent发布方法。

有关发布方法和发布方法之间的完整差异集,请参阅本文。WMSvcRemoteAgent

于 2013-02-28T19:11:57.583 回答
1

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

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

没有一个网站名称对我有用。我的参数都没有引号。当然,如果您在其中一个参数中错误地留了一个空格,您将收到错误:MSBUILD : error MSB1008: Only one project can be specified

于 2013-06-25T13:00:03.983 回答