在单独的域中的另一台计算机上安装TFS 2013构建代理

时间:2014-01-14 10:02:19

标签: tfs2013

我们有两个Windows域,它们之间没有信任。在主域上我们有一个简单的TFS服务器2013设置,在开发域中我们想要设置一个额外的构建代理。此构建代理将添加到TFS计算机上的现有构建控制器(TFS计算机已包含单个构建控制器和代理)。

到目前为止,我已经为TFS和开发机器添加了相同的本地用户帐户。换句话说,在两个VM上都有一个具有相同名称和密码的影子帐户。我正在该用户下运行TFS构建服务安装程序,一切顺利,直到进入配置步骤。

此步骤失败,并显示“TF400106:无法注册构建服务”以及日志中的以下堆栈跟踪:

Exception Message: User account DEV\machinename$ not found (type Exception)
Exception Stack Trace:    at Microsoft.TeamFoundation.Build.Config.BuildServiceHostUtilities.CheckServiceAccountMembership(TfsTeamProjectCollection tfsCollection, String serviceAccount)
   at Microsoft.TeamFoundation.Build.Config.BuildServiceHostUtilities.UpdateCollectionPermissions(TfsTeamProjectCollection tfs, String userName)
   at Microsoft.TeamFoundation.Build.Config.BuildServiceHostUtilities.UpdateAuthenticatingAccount(TfsTeamProjectCollection tfsCollection, String fromUser, Boolean canTranslateFromUser, String toUser, Boolean canTranslateToUser)
   at Microsoft.TeamFoundation.Build.Config.BuildServiceHostUtilities.Register(IBuildServiceHost serviceHost, String serviceAccount, String serviceAccountPassword, X509Certificate2 serverCertificate, String authenticatingUserName, Boolean canTranslateAuthenticatingUserName)
   at Microsoft.TeamFoundation.Admin.TeamBuildInstaller.RegisterWithApplicationServer(IAuthenticatedCollectionProvider authenticatedConnectionProvider, IBuildServiceHost host, String collectionUri, Int32 port, AccountInfo serviceAccount, AccountInfo authenticatingAccount, Boolean useHttps, BuildControllerOptions controllerOptions, List`1 agentListOptions, Boolean cleanOldResources, String certificateThumbprint, Boolean requireClientCertificates, ITFLogger logger)
   at Microsoft.TeamFoundation.Admin.ConfigureRegisterBuild.Run(ActivityContext context)

那堆栈跟踪是什么意思?这个设置有可能工作吗? 我确实在网上看到它没有得到很好的支持,但也有一些成功的故事。

1 个答案:

答案 0 :(得分:3)

事实证明,上述确实是可能的,但只有少数黑客。 首先,您需要通过输入域帐户来运行安装,该帐户要求"帐户在"下运行服务。向导将对DEV域中的域帐户感到满意并完成。域帐户是Dev域中的帐户,主域中没有等效帐户。

此时,您在事件记录中留下错误,说明"您无权访问..."。现在黑客攻击开始了。您必须转到服务控制台(start-> run-> services.msc)并手动更改"登录为"帐户" Visual Studio TFS Build Service Host 2013"服务到您的影子帐户(即构建服务器和TFS服务器上存在的具有相同名称和密码的本地帐户)。您需要重新启动服务才能使其生效。这应该可以阻止错误显示在事件日志中。

最后,您可以转到TFS管理控制台并添加代理。现在你应该能够以它的方式发送构建。

您无法通过TFS管理控制台配置帐户的原因是因为它不允许在"连接到TFS作为"指定本地帐户。这当然是有道理的,因为通常不会在框外识别本地帐户。复选框"使用与Windows服务相同的身份"默认情况下会进行检查,因此它将使用指定的任何帐户作为"登录为服务"帐户。

我希望这可以帮助那些有些严重头疼的人。