TFS 2018实例出现多起404错误,如何排查解决?
解决TFS 2018多处404错误及集合不显示问题
根据你遇到的情况,我整理了几个逐步排查和修复的方案,你可以按顺序尝试:
1. 检查TFS核心服务状态
首先确认TFS相关的Windows服务是否正常运行:
- 打开服务控制台(运行
services.msc) - 找到以下服务,确保它们处于正在运行状态:
- Visual Studio Team Foundation Background Job Agent
- Visual Studio Team Foundation Server
- 如果有服务停止,右键启动,之后等待5-10分钟让TFS完成初始化,再尝试操作
2. 验证TFS服务账户的数据库权限
虽然操作的管理员没有数据库权限,但TFS本身的服务账户需要对配置数据库和集合数据库有完整权限:
- 登录到TFS服务器的SQL Server(用有数据库权限的账户)
- 检查
Tfs_Configuration数据库的权限,确认TFS服务账户(通常是域账户或本地系统账户)拥有db_owner角色 - 如果是刚创建的集合,检查是否生成了对应的
Tfs_<集合名>数据库,若没有,说明创建过程失败,需要手动清理残留记录
3. 清理“幽灵”集合(创建后不显示的集合)
因为集合创建后未在管理控制台显示,大概率是配置数据库中的记录异常,你可以用TFS命令行工具修复:
- 打开Developer Command Prompt for Visual Studio 2017/2019(TFS 2018兼容这些版本的命令行工具)
- 运行以下命令列出所有集合(包括未显示的):
TFSSecurity /gc /server:<你的TFS服务器URL> - 找到那个未显示的集合的GUID,然后运行命令删除它:
TFSConfig collection /delete /collectionName:<集合名> /server:<TFS服务器URL>
4. 修复离线代理和团队项目的404问题
如果删除操作报404,说明TFS的缓存或配置记录不一致:
- 清理TFS客户端缓存:在TFS服务器上,删除
C:\ProgramData\Microsoft\Team Foundation\Web Access\Cache目录下的所有文件 - 重建TFS缓存:运行命令:
TFSConfig cache /delete /server:<TFS服务器URL> - 对于离线代理,你可以直接在SQL Server的
Tfs_Configuration数据库中,找到tbl_AgentPool和tbl_Agent表,手动标记离线代理为已删除(操作前请务必备份数据库)
5. 检查IIS配置
TFS依赖IIS提供Web服务,404可能是IIS站点配置异常:
- 打开IIS管理器,找到TFS对应的站点(通常是
Default Web Site下的tfs应用) - 检查应用程序池的状态,确保它处于启动状态,且.NET版本设置为
4.0 - 重置IIS:运行命令
iisreset,之后重启TFS服务
6. 运行TFS配置修复工具
如果以上步骤都无效,用TFS自带的修复工具:
- 打开Team Foundation Server管理控制台
- 点击应用层,然后选择修复选项,按照向导完成修复过程,这个工具会自动检测并修复配置数据库、服务连接等常见问题
内容的提问来源于stack exchange,提问作者san web
相关产品推荐
相关产品推荐

