将BitBucket Git仓库导入TFS 2018时遇连接超时问题求助
我之前帮团队处理过类似的TFS 2018导入自建BitBucket仓库的超时问题,结合实际经验给你几个针对性的排查和解决方向:
优先确认BitBucket证书是否被TFS服务器信任
自建BitBucket大多用自签证书或者内部CA颁发的证书,TFS服务器如果没把这个证书加入系统信任列表,就会触发SSL握手失败,最终导致超时。操作步骤:- 在TFS应用服务器上用浏览器打开BitBucket的仓库URL,看是否弹出证书不受信任的提示
- 如果有提示,从浏览器导出BitBucket的证书(路径:查看证书→详细信息→复制到文件),然后导入到TFS服务器的本地计算机→受信任根证书颁发机构存储中
- 重启TFS相关服务(Team Foundation Background Job Agent、IIS服务),再尝试导入
检查TFS的代理配置(如果有)
如果TFS服务器需要通过代理访问BitBucket,务必确认代理配置正确,且代理能正常访问BitBucket的HTTPS地址。你可以在TFS管理控制台里核对代理设置,或者用tfpt proxy命令测试连通性。手动测试SSL连通性
在TFS服务器上用openssl s_client -connect <你的BitBucket域名>:443命令(需要先安装OpenSSL),查看SSL握手过程是否有错误。比如TFS 2018默认可能只支持TLS 1.0/1.1,而BitBucket如果启用了TLS 1.2+,就会出现协议不兼容的问题,这时候需要调整TFS服务器的Schannel设置,启用对应TLS版本。查看TFS的详细日志(别只看EventViewer)
EventViewer通常只记录严重错误,你可以去TFS的日志目录深挖:- Web服务日志默认路径:
C:\Program Files\Microsoft Team Foundation Server 2018\Application Tier\Web Services\_logs - 后台作业日志默认路径:
C:\Program Files\Microsoft Team Foundation Server 2018\Application Tier\TFSJobAgent\_logs
这些日志里会有更详细的SSL错误提示,比如“证书链无法建立”,能帮你精准定位问题。
- Web服务日志默认路径:
先在TFS服务器本地克隆BitBucket仓库
用Git命令行在TFS服务器上克隆BitBucket仓库,如果克隆失败,错误信息会更直白。如果是证书问题,可以先解决本地Git的信任问题(比如把BitBucket证书导入Git的证书存储,或者临时用git config --global http.sslVerify false测试,但这个只是临时方案,不建议长期开启),再尝试导入TFS。
另外,首次导入超时如果是仓库较大也有可能,但多次失败且EventViewer无异常的话,SSL证书问题的概率确实很高,先从证书信任这块入手,应该能解决大部分问题。
内容的提问来源于stack exchange,提问作者mangel

