9

今天在我们的 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

所以我的问题是这怎么可能。用户 TFS2010Build 会不会被 TFS2010Install 冒充?我尝试安装一个额外的构建服务器,在这里启动用户 TFS2010Build 下的服务没有问题 - 因此它不是 AD 或 TFS 用户权限的问题。

希望各位大侠帮忙!

/碧玉

!!更新了一些屏幕截图。构建服务器是 TFS2010BIULD,TFS 服务器是 TFS2010 在此处输入图像描述

链接到全尺寸

非工作构建服务器 TFS2010Build 的屏幕截图 在此处输入图像描述

工作构建服务器 TFS2010Build1 的屏幕截图 在此处输入图像描述

!!新更新

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

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

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

4

3 回答 3

5

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

您是否也尝试过重新配置您的构建机器?

取消配置:tfsconfig.exe setup /uninstall:TeamBuild

并通过向导重新配置。

于 2011-10-25T01:52:41.057 回答
1

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

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

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

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

留给我的问题:为什么 TFS 服务器上的默认集合不接受 TFS2010Build 帐户作为有效管理员?

潜在原因:

  1. 阅读吉姆兰姆的答案。

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

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

一个很长的回答,但希望它能给你一个正确的方向。

于 2011-10-25T19:38:54.143 回答
0

得知您在使其正常工作时遇到问题,我们深感抱歉。以下是您可以检查/尝试的几件事:

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

  • 如果您在作为关联项目集合上的项目集合管理员组成员并且也是构建计算机上本地管理员组成员的用户登录时安装和配置构建服务,则所有必要的权限和通常会为您设置其他配置。

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

于 2011-10-24T17:47:21.807 回答