当我从本地计算机上的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 $。 (以及最后的$是什么?)我认为错误的帐户被使用了吗?我需要做些什么来实现这个目标?
答案 0 :(得分:1)
CO \ BUILD-SERVER $是构建服务器的计算机帐户。
如果你的机器上运行了一个奴隶,它是否作为Windows服务运行?如果是这样的话,它可能就像" System"
同样重新进行Selenium测试,如果测试在构建服务器上运行,那么服务可能需要设置为以交互方式运行,以便测试可以针对UI运行。