TFSBuildServiceHost.exe的Windows服务用户帐户问题

时间:2011-10-21 19:33:53

标签: tfs windows-services tfs2010 tfsbuild build-server

今天在我们的TFS2010构建服务器上遇到了一个非常奇怪的问题。突然,构建服务失败了,没有明显的原因。我们整天都在拍摄它,但仍然没有找到原因。

其中一个问题是构建服务是(或应该!)在名为tfs2010build的AD用户下运行。但是,当我尝试启动该服务时,我收到以下错误

Service cannot be started. Microsoft.TeamFoundation.TeamFoundationServerUnauthorizedException: TF30063: You are not authorized to access http://tfs2010:8080/tfs/default. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.

当我查看TFS2010服务器上的事件日志时,我看到为名为TFS2010Install的用户注册了失败的身份验证,该用户用于安装所有内容。我已经检查过,并且该服务被指定为在TFS2010Build下运行。

从TFS2010服务器登录:

Account For Which Logon Failed:
Security ID:        NULL SID
Account Name:       TFS2010INSTALL
Account Domain:     LC

所以我的问题是这怎么可能。 COULD用户TFS2010构建一些如何被TFS2010安装模拟?一世 我试图安装一个额外的构建服务器,在用户TFS2010Build下启动服务没有问题 - 因此它不是AD或TFS用户权限的问题。

希望你们能帮忙!

/碧玉

!!更新了一些屏幕截图。构建服务器是TFS2010BIULD,TFS服务器是TFS2010 enter image description here

Link to full size

非工作构建服务器TFS2010Build的屏幕截图 enter image description here

工作构建服务器TFS2010Build1的屏幕截图 enter image description here

!!新更新

我设法让Build服务在TFS2010Build用户帐户下运行(实际上是问题开始时的初始状态)。当我将构建排队到这个控制器和代理时,我得到了构建日志中的以下内容:

  

TF215097:初始化构建定义的构建时发生错误\ PlanteIT_MarkOnline_Scrum \ CI_Main_FieldOnlineClient:TF215106:访问被拒绝。 LC \ TFS2010INSTALL需要更新团队项目PlanteIT_MarkOnline_Scrum中的构建定义CI_Main_FieldOnlineClient的构建信息权限以执行操作。有关详细信息,请与Team Foundation Server管理员联系。

尽管TFS2010Build用于构建服务,它仍然坚持TFS2010Install用户帐户正在运行该服务。有什么想法吗?

3 个答案:

答案 0 :(得分:5)

这是一个黑暗的刺,您可以尝试在Tfs2010Build帐户下的故障构建机器上清除TFS客户端缓存和您的Internet缓存吗?我之前从未见过这个问题,但也许有些陈旧的缓存TfsProjectCollection对象与TFS2010Install身份验证保持不变并导致问题。

您是否也尝试过重新配置构建计算机?

取消配置: tfsconfig.exe安装/卸载:TeamBuild

并通过向导重新配置。

答案 1 :(得分:1)

我会再一次尝试......,一步一步: - )

  1. FACT :当您将构建控制器注册到TFS项目集合时,以TFS2010Build身份登录,会弹出一个身份验证对话框。这意味着TFS服务器接受TFS2010Build作为可用于连接到TFS服务器上的默认集合的帐户。

  2. FACT :当您将构建控制器注册到TFS项目集合时,以TFS2010Install身份登录,弹出身份验证对话框。这意味着TFS服务器 接受TFS2010Install作为可用于连接到TFS服务器上的默认集合的帐户。

  3. 显然,因为在1和2中,您的构建控制器使用TFS2010Install帐户注册到TFS服务器,控制器或服务器会记住这些凭据并在构建时使用它们连接到TFS服务器集合控制器已启动,尽管服务本身在TFS2010Build帐户下运行。这是一种似是而非的情况,并且通常以这种方式对服务进行模拟。也许一些TFS技术人员可以确认或否认这种行为。

  4. 仍然存在的问题:为什么TFS服务器上的默认集合不接受TFS2010Build帐户作为有效管理员?

    潜在原因:

    1. 阅读Jim Lamb的回答。

    2. 用于将控制器连接到TFS服务器上的集合的系统或用户的域注册出了问题。

    3. 解决问题的最快方法:继续安装似乎没有问题的辅助服务器,可能尝试使用此辅助服务器中的TFS2010Build来查看问题是否也出现在那里。

      长长的屁股,但希望它能给你一个正确的方向。

答案 2 :(得分:0)

很抱歉听到您在使用此功能时遇到问题。以下是您可以检查/尝试的一些事项:

  • 确保TFS2010Build用户帐户是您与之关联的TFS项目集合中“Build Services”组的成员。

  • 如果以用户身份登录时安装和配置构建服务,该用户是关联项目集合上Project Collection Administrators组的成员,并且也是构建计算机上本地Administrators组的成员,通常会为您设置所有必需的权限和其他配置。

因此,总而言之,配置构建计算机的用户应该是项目集管理员组的成员和本地管理员组的成员。并且,构建机器正在运行的用户帐户应该是项目集合的“构建服务”组的成员。