You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自托管Windows代理下载AzureKeyVault@2任务遇SocketException(10054)错误

解决方案:Windows自托管代理下载特定任务出现SocketException(10054)

第一步:获取任务下载的URL(解决排查无方向问题)

要定位任务包的下载地址,需开启代理的诊断日志:

  • 打开Windows代理安装目录下的.env文件,添加一行:AGENT_DIAGNOSTICS=true
  • 或者启动代理时添加参数:.\run.cmd --diagnostics
  • 重新触发流水线,在代理日志(默认路径:_diag文件夹下的日志文件)中搜索Downloading task package,即可找到对应的下载URL,格式通常为https://vstsagentpackage.azureedge.net/agenttasks/{任务名称}/{版本}/task.zip

第二步:针对性排查与修复

1. 网络拦截排查

  • 检查Windows机器的防火墙、杀毒软件:对比能正常下载的Powershell@2任务域名,确认AzureKeyVault@2、Bash@3对应的下载域名是否被安全软件拦截,临时关闭安全软件测试是否恢复正常
  • 代理服务器配置:如果Windows机器使用了企业代理,确认代理规则允许访问任务下载的域名;Linux代理可能使用了不同的代理策略,可同步Windows代理的代理配置

2. 强制启用高版本TLS

部分Windows环境默认禁用TLS 1.2/1.3,而任务下载服务器可能要求该版本,执行以下PowerShell命令后重启代理:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Tls13

3. 升级代理版本

当前使用的v3.x.x可能存在旧版本兼容性问题,下载最新的v3.x稳定版Windows自托管代理,替换现有代理(保留原代理目录下的.agent和.env配置文件即可,无需重新配置)

4. 手动下载验证

根据日志中的URL,在Windows机器上手动下载任务包测试:

Invoke-WebRequest -Uri "获取到的任务下载URL" -OutFile "task.zip"
  • 若手动下载失败:确认网络层面的问题(如DNS解析、路由、端口限制)
  • 若手动下载成功:检查代理服务的权限、缓存设置,或尝试重新注册代理

错误日志参考

System.Net.Sockets.SocketException (10054): 远程主机强制关闭了现有连接。
at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
at Microsoft.VisualStudio.Services.Agent.Worker.TaskManager.DownloadTaskPackageAsync(TaskDefinition task, CancellationToken token)

内容的提问来源于stack exchange,提问作者Alejandro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:45:26