TFS 2015 Update 3测试代理排队构建时闲置休眠及相关问题求助
Troubleshooting TFS 2015 Update 3 Test Agent Idle/Sleep, WinRM Access Denied, and Lock Issues
我来帮你梳理这几个TFS测试代理的常见问题,结合TFS 2015 Update 3的特性,给你针对性的解决方案:
1. 测试代理排队构建时进入闲置/休眠,需手动刷新
- 调整服务启动与恢复策略
打开系统服务管理器,找到Visual Studio Test Agent服务:- 把启动类型设为
自动(延迟启动),确保系统启动后代理能自动运行; - 切换到「恢复」标签页,设置第一次、第二次、后续失败的恢复动作都为
重启服务,避免服务意外停止后无法自动恢复。
- 把启动类型设为
- 禁用机器电源休眠
检查代理所在机器的电源计划,彻底禁用休眠、睡眠和硬盘休眠功能——很多时候代理"休眠"其实是主机进入了低功耗状态。 - 配置代理心跳保持活跃
找到代理安装目录下的config.cmd(默认路径:C:\Agent\Agent\config.cmd,根据你的实际安装路径调整),添加或修改以下参数:
这会让代理每隔30秒向TFS服务器发送心跳包,避免被标记为闲置状态。set AGENT_ALLOW_RUNASSESSIONS=1 set AGENT_KEEPALIVE_INTERVAL=30
2. 无更改情况下出现WinRM访问被拒,需删除重配代理
- 重置WinRM配置并验证权限
以管理员身份打开命令提示符,执行以下命令重置WinRM:
(注:开启Basic认证和非加密传输是临时排查步骤,连接正常后可根据安全需求调整)winrm invoke restore winrm/config winrm set winrm/config/service/auth @{Basic="true"} winrm set winrm/config/service @{AllowUnencrypted="true"}
同时要确保运行测试代理的账户:- 属于本地管理员组;
- 在TFS服务器上拥有「测试代理服务账户」权限;
- 在目标机器上有WinRM访问权限。
最后从TFS服务器执行命令测试连接(替换<AgentMachineName>为代理机器名):
成功则说明WinRM配置正常,失败的话检查防火墙是否开放WinRM的5985(HTTP)或5986(HTTPS)端口。winrm id -r:<AgentMachineName> - 重新注册代理而非直接删除
不用着急删除代理,打开代理安装目录的config.cmd,选择「重新配置」,输入原有的TFS服务器URL、项目集合和代理名称,用相同账户重新注册即可修复损坏的注册信息。
3. 代理出现锁定或休眠情况
- 手动解锁+重启服务
登录TFS Web界面,进入「设置」→「代理池」,找到对应的代理点击「解锁」;如果Web界面无法解锁,直接在代理机器上重启Visual Studio Test Agent服务,同时重启Microsoft Team Foundation Build Service服务。 - 调整代理并发限制
在TFS代理池设置中,调整「最大并发作业数」——不要设置过高,建议根据机器CPU核心数设置为1-2倍,避免代理因负载过高进入假死状态。 - 启用代理健康检查
找到代理工作目录下的settings.json(默认路径:C:\Agent\Agent\_work\settings.json),添加以下配置:
这会让代理每隔60秒进行一次健康检查,超时120秒则自动重启,避免长时间无响应。"healthCheckInterval": 60, "healthCheckTimeout": 120
内容的提问来源于stack exchange,提问作者shenQA
相关产品推荐
相关产品推荐

