我使用列出的here指令设置了一个TFS内部部署构建代理作为服务。我设置了随附的代理池,权限,构建控制器等。并解决了围绕让代理连接和运行的大多数设置挑战。我现在有一个连接并能够运行构建的代理:
我的配置如下所示:
" settings.json" - " ServerURL":http://tfs.XXXXXXXXX.com:80/tfs
"通过以下方式收听Build Agent通信:" http://XXXXXXXXXXX.com:9191/Build/v5.0/Services
但是当我尝试使用我新配置的代理池运行任何构建时,它总是在代理的日志中输入时失败:
System.Net.Http.HttpRequestException:发送时发生错误 请求。 ---> System.Net.WebException:底层连接 已关闭:无法建立SSL / TLS的信任关系 安全通道。 ---> System.Security.Authentication.AuthenticationException:远程 证书根据验证程序无效。
代理人 没能开始这份工作。错误:发送时发生错误 请求。
这对我来说非常混乱,因为在我的TFS配置中没有使用SSL。如果我没有使用端口443连接到它,它将如何在坏的证书(在这种情况下是自签名)上失败。当我通过网络浏览器(firefox)连接到该位置时,我不会自动重定向到" https"。代理商是否被重定向?同样,我能够在没有问题(或证书失败)的情况下连接到列出的URL,但似乎由于某些原因,代理不是。
我不确定我是否是唯一一个遇到此问题的人。我认为this是相关的,但不是相同版本的软件。此错误消息中有一百万个其他引用,但我没有看到具有相同上下文或配置的单个引用。有没有人见过这个问题?
答案 0 :(得分:2)
Team Foundation Server本身有一个名为Notification Uri的设置,每当有任何东西询问它可以找到的东西时,它会使用这个Uri发回该位置。
在你的情况下,构建服务器想知道所有类型的东西,下载源代码,构建过程模板,上传测试结果等。当询问从哪里获取或发送这些内容时,TFS将响应该Notification Uri
您的服务器配置为使用自签名SSL证书,服务器配置为通过其通知Uri属性发回安全位置,因此您的客户端需要建立信任关系以建立通信。
有三种解决方案:
注意:禁用SSL可能会在安全设置中引入漏洞,具体取决于身份验证的配置方式。如果您的服务器接受基本身份验证,或者当您升级到TFS2017并激活对个人访问令牌的支持时,您的身份验证令牌可以通过网络以明文形式发送。