我已經使用here中列出的說明,將一個TFS內部部署生成代理設置爲服務。我設置了隨附的代理池,權限,構建控制器等。並且圍繞讓代理連接並運行的大部分安裝挑戰進行了工作。我現在是連接並能夠運行一個代理構建:TFS內部部署生成代理 - 無法建立SSL/TLS安全通道的信任關係
我的配置看起來是這樣的:
"settings.json" - "ServerURL": http://tfs.XXXXXXXXX.com:80/tfs
"Listen for Build Agent communication on:" http://XXXXXXXXXXX.com:9191/Build/v5.0/Services
但是當我嘗試使用運行任何建立我的新配置的代理程序池時,代理程序日誌中的條目始終會失敗:
System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
The Agent failed to start this job. Error: An error occurred while sending the request.
這非常符合因爲在我的TFS配置中沒有任何地方使用SSL。如果我沒有使用端口443連接它,它將如何在一個錯誤的證書上失敗(在這種情況下是自簽名的)。當我通過網絡瀏覽器(firefox)連接到該位置時,我不會自動重定向到「https」。代理商是否被重定向?再次,我能夠沒有問題(或失敗的證書)連接到列出的URL,但似乎由於某種原因,代理不是。
我不確定我是否是唯一一個得到此問題的人。我認爲this是相關的,但不是相同版本的軟件。這個錯誤消息有一百萬個其他引用,但我沒有看到具有相同上下文或配置的單個引用。有沒有人曾經見過這個問題?
服務器管理面板中的TFS服務器的通知Uri是什麼?如果它被設置爲https位置,則在初始連接後,構建代理將在那裏重定向。將自簽名服務器證書添加到Windows中受信任的根證書的存儲應允許生成代理進行身份驗證。 – jessehouwing
是的,你是正確的,它是「https」。關於第二個建議,我認爲你的觀點大致正確,但是這個改變的細節比[看起來更復雜](http://stackoverflow.com/a/8752467/2912011)要好得多。雖然這確實超出了這個問題的範圍。我認爲改變這個「通知URL」可能是其他人最簡單的解決方案。 –