我正在使用 TFS 执行夜间构建,其中包括使用 TFS Test Agent 的几个步骤.我正在运行最新版本的 TFS/测试代理(2015 - 更新 3),目前没有其他版本正在运行。通常(可能有一半的时间),当夜间作业运行时,“Visual Studio 测试代理部署”步骤失败并出现以下错误:
The job has been abandoned because agent Agent-XXX did not renew the lock. Ensure agent is running, not sleeping, and has not lost communication with the service.
这是由于在测试代理的日志文件中发现的错误(在 _diag 下):
The session for this agent already exists. Sleeping for 30 seconds before next retry.
Microsoft.TeamFoundation.DistributedTask.WebApi.TaskAgentSessionConflictException: The task agent Agent-XXX already has an active session for owner XXX.
这个问题直接引用here ,间接谈到了here .
我发现这个问题的解决方案是重新启动测试代理正在运行的服务器,这会清除所有死 session ,并且在服务器启动备份后,测试运行得很好。我认为这实际上是在 previously mentioned post 中所做的工作。 .重置配置的结果是服务重新启动。
虽然在链接文章中作为解决方案提出,但这只是暂时的。即使在服务器重新启动并且构建成功运行后,第二天问题仍会再次出现,需要手动干预才能运行构建。
我可以安排一个任务来重置服务,甚至在每晚构建运行之前直接重新启动服务器,但它让我觉得是绷带而不是修复。有没有人以前遇到过这个问题,如果有的话,有什么办法可以防止它首先发生?
更新 1
我只是设置了一个在运行 Bat script 的主要测试之前运行 5 分钟的构建。重新启动托管我的测试代理的所有服务器。这是一种解决方法,但似乎可以解决问题。希望有一天有人能想出比这更好的解决方案,但就目前而言,这就是我必须在 TFS 中运行自动化测试的方式。
更新 2
我现在有三台服务器,所有三台服务器都表现出相同的问题,尽管很难确定它发生的确切时间。在不造成停机的情况下扩大解决方法被证明是非常具有挑战性的。
更新 3
好日子来了,我把TFS升级到2018,构建代理升级到最新版本,这个问题不再出现,我认为是旧构建代理中的一个错误。我仍然没有原始版本的构建代理的解决方案......
最佳答案
我只是重新启动我的服务器,然后打开 run.cmd,我的问题就解决了。
我希望这对你有用。
关于tfs - 此代理的 session 已存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41858662/