为什么Web Deploy使用了错误的帐户?

时间:2016-01-07 00:44:00

标签: jenkins msbuild continuous-integration ntlm webdeploy

当我从本地计算机上的Visual Studio中激活Web Deploy时,我已经验证了Web部署的工作原理(使用NTLM授权)。现在我希望我的构建服务器每晚都自动部署(如果适用)。我在构建服务器上使用Jenkins,并且我在远程计算机上的IIS中授予了帐户访问权限。我对MSBuild的参数如下:

/p:DeployOnBuild=true  
/p:Configuration=Debug  
/p:Platform=x86  
/p:PublishProfile=DEV  
/p:AuthType=NTLM  
/p:AllowUntrustedCertificate=True  
/p:Username=

DEV发布配置文件指定我的DEV服务器使用自签名证书,因此需要不受信任的证书。 NTLM和空白用户名应使用当前用户/帐户进行连接。

然而,詹金斯'作业的MSBuild步骤因此错误而失败

  

msdeploy错误ERROR_USER_UNAUTHORIZED:Web部署任务失败。 (使用Web管理服务连接到远程计算机(" DEV-SERVER"),但无法授权。确保使用正确的用户名和密码,您要连接的站点存在,以及凭据代表有权访问该网站的用户。请访问:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_UNAUTHORIZED了解详情。)

当我查看DEV-SERVER上的IIS日志时,我看到以下内容:

  

2016-01-06 23:55:10 159.212.19.186 HEAD /msdeploy.axd site = MySite 8172 - 159.212.19.123 - 401 2 5 0
  2016-01-06 23:55:10 159.212.19.186 HEAD /msdeploy.axd site = MySite 8172 CO \ BUILD-SERVER $ 159.212.19.123 - 401 2 64 78

我原本期待看到詹姆斯正在运行的帐户CO \ jenkins,而不是CO \ BUILD-SERVER $。 (以及最后的$是什么?)我认为错误的帐户被使用了吗?我需要做些什么来实现这个目标?

1 个答案:

答案 0 :(得分:1)

CO \ BUILD-SERVER $是构建服务器的计算机帐户。

如果你的机器上运行了一个奴隶,它是否作为Windows服务运行?如果是这样的话,它可能就像" System"

同样重新进行Selenium测试,如果测试在构建服务器上运行,那么服务可能需要设置为以交互方式运行,以便测试可以针对UI运行。