Azure Pipeline配置正确仍无法访问Azure Artefact项目NuGet源问题
故障根因
核心问题为nuget.config中配置的Azure DevOps包源使用了HTTP协议:
- NuGet Authenticate任务注入的凭据默认仅匹配
https://前缀的Azure DevOps包源,从任务日志可以看到,受凭据保护的地址前缀均为HTTPS协议,你配置的HTTP地址源不在认证覆盖范围内 - Azure DevOps包源端点本身强制HTTPS跳转,HTTP请求在跳转过程中会丢失认证上下文,最终触发NU1301服务索引加载失败错误
- 本地IDE(VS/Rider)会自动将HTTP协议的Azure DevOps源隐式升级为HTTPS,因此本地还原不会触发问题;包推送流水线内置逻辑默认强制使用HTTPS端点,因此推送操作可正常运行,和你观察到的现象完全匹配。
修复方案
- 修改项目下的
nuget.config文件,将azure-feed源地址的协议头从http://替换为https://,修正后的配置片段如下:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <clear /> <add key="nuget" value="https://api.nuget.org/v3/index.json" /> <add key="azure-feed" value="https://pkgs.dev.azure.com/<org>/<project>/_packaging/<feed-name>/nuget/v3/index.json" /> </packageSources> </configuration>
- 若使用自托管构建代理,额外确认代理网络策略未拦截443端口出站请求,访问
pkgs.dev.azure.com不存在强制HTTP跳转的全局代理配置。 - 保存配置后重新触发流水线即可正常完成还原,无需调整权限、认证任务版本等其他配置。
内容的提问来源于stack exchange,提问作者Grofit
相关产品推荐
相关产品推荐

