2013-02-28 135 views
3

我们有一个解决方案,由几个类库和一个Web应用程序项目组成。我们在Team Build中使用TFS 2012。解决方案 在构建服务器上正确编译。TFS 2012团队构建和Web应用程序部署--L ERROR_USER_NOT_ADMIN

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

/P:DeployOnBuild =真/ P:DeployTarget = MsDeployPublish /P:CreatePackageOnPublish =假/ P:MSDeployPublishMethod = RemoteAgent /P:MsDeployServiceUrl = https://testWebServer:8172/MsDeploy.axd?site=direct/P:AllowUntrustedCertificate =真 /P:DeployIisAppPath =“直接“ /p:AuthType = NTLM

该解决方案构建但不部署。我收到以下错误消息:

msdeploy error ERROR_DESTINATION_INVALID: Web deployment task failed. (Could not connect to the remote computer ("https"). Make sure that the remote computer name is correct and that you are able to connect to that computer. Learn more at: 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://无济于事,错误是一样的,所以它从 某处获得值。

我有以下值尝试这样的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,而不仅仅是一个主机名(那些看起来像我认为只是为了简洁而写的主机名)。

然而,我现在面临着一个新问题。我在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管理器用户在某种程度上是不正确的。无论如何,如果有必要,它们将在不同的帖子中出现。

+1

您是否尝试过将URL双引号 ?似乎它被砍了:! – drk 2013-02-28 15:14:36

+0

确实我有。我用我尝试过的一些值更新了我的帖子。我确信还有其他人尝试过,但我不记得了...... – CodeWarrior 2013-02-28 15:25:53

回答

3

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

你可以尝试基于this article从特洛伊亨特指定

/P:MSDeployPublishMethod=WMSvc 

Web管理服务(WMSVC)使用

.axd 

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

请参阅this article了解WMSvcRemoteAgent发布方法之间的完整集合差异。

+0

在这种情况下,最有可能的是,您需要/ P:MSDeployPublishMethod = WMSvc(这是默认的IIS7)。我建议您首先尝试使用控制台msdeploy客户端进行连接,以确保您的目标服务器的msdeploy服务已启动并正在运行。 – Isantipov 2013-02-28 19:25:35

+0

你可以聊几分钟吗?我可以创建一个聊天室,而不是用来回填充此区域... – CodeWarrior 2013-02-28 20:07:01

+0

命令行返回错误的目标不可达。我已验证服务正在运行(net start wmsvc),并且我已在两台计算机上完全禁用了防火墙,以查看是否可以使其运行。没有骰子。 – CodeWarrior 2013-02-28 20:23:58

1

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

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

无网站名称的工作对我来说无论是。我的参数没有任何引号。当然,如果您在其中一个参数中留下错误的空间,您将收到以下错误: MSBUILD:错误MSB1008:只能指定一个项目

相关问题