VSCode插件市场无重试配置参数,高频重试源于客户端网络失败后的静默3–5次短间隔轮询;serviceUrl与itemUrl须同时正确配置且末尾带斜杠,否则触发404后持续重试;仅彻底退出进程并验证Network请求URL才能生效;手动安装.vsix是唯一绕过重试的可靠方式。

VSCode 插件市场本身没有可配置的“重试机制”参数,所谓“重试导致雪崩”是误判——真正触发高频重试的是客户端网络失败后自动轮询,而服务器端(如 marketplace.visualstudio.com 或镜像源)并不暴露重试控制开关。
为什么改了 serviceUrl 还会反复重试?
VSCode 扩展系统在请求失败时会静默重试 3–5 次,不提供退避策略或最大重试次数配置。但重试行为只发生在客户端,和服务器负载无关;所谓“雪崩”其实是多个用户在同一网络环境下并发失败、集体卡在重试状态,表现为大量 ERR_CONNECTION_TIMED_OUT 或 net::ERR_CONNECTION_RESET 日志,而非服务器被打垮。
- 重试由 VSCode 内部逻辑硬编码控制,无法通过
settings.json或启动参数调整 - 所有重试都针对同一 URL(如
https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/),不会自动 fallback 到备用源 - 重试间隔极短(约 1–2 秒),若网络持续不稳定,就会形成“请求风暴”,看起来像雪崩
serviceUrl + itemUrl 必须同时配且末尾带斜杠
只改 extensions.gallery.serviceUrl 不够,VSCode 会额外请求插件详情、发布者列表、缓存清单等端点。漏配 extensions.gallery.itemUrl 会导致部分页面能打开、但点击安装就立即失败并进入重试循环。
- 正确写法(以 Azure 镜像为例):
"extensions.gallery.serviceUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/""extensions.gallery.itemUrl": "https://vscode.cdn.azure.cn/extensionGallery/extensionGallery/item/" - Open-VSX 源必须显式指定 itemUrl:
"extensions.gallery.itemUrl": "https://open-vsx.org/vscode/item",不能省略 - 任何 URL 少一个末尾
/,服务端返回 404,VSCode 不报错,只默默重试——这是最常见、最隐蔽的重试诱因
彻底退出进程才能让新配置生效
VSCode 的扩展市场配置在启动时加载一次,运行中修改 settings.json 不会热更新。如果只是重启窗口或重载窗口,旧的请求链路仍在后台运行,重试逻辑照常触发。
- Windows:右键任务栏图标 → “退出”,不要只关窗口;或用任务管理器结束所有
Code.exe和Code Helper.exe进程 - macOS:Activity Monitor 中搜索
Code和Code Helper,强制退出全部 - Linux:执行
killall -9 code,确保无残留进程 - 验证是否清干净:重启后打开 Developer Tools → Network 标签页,过滤
gallery,看请求 URL 是否已变成你配的新地址
手动安装 .vsix 是唯一绕过重试链路的方式
当网络环境不可控(如企业出口网关主动 RST、DNS 污染严重),所有基于 marketplace 的自动流程都会陷入重试死循环。此时唯一可靠路径是跳过 HTTP 请求,走本地文件流。
- 从插件 Marketplace 页面(如
https://marketplace.visualstudio.com/items?itemName=ms-python.python)滚动到底部,点 “Download Extension”,拿到.vsix文件 - 不要双击打开,而是用命令面板执行
Extensions: Install from VSIX,手动选中文件 - 注意校验:
.vsix文件大小应 ≥ 50KB;解压后根目录必须有package.json,且其中engines.vscode字段值 ≤ 当前 VSCode 版本(例如你用1.90.0,插件写"^1.92.0"就会被拒)
重试不是问题本身,而是网络不通的表象。真正要盯住的只有三件事:URL 路径是否全对(尤其末尾斜杠)、进程是否真退出、有没有安全软件在静默丢包。其他所有“调优重试”的尝试,都是在给错误归因而努力。


















