NuGet 源可以打开,但包下载被阻止
当代理允许元数据但阻止实际的包主机时,追踪从服务索引到包内容的 NuGet v3 还原过程。
浏览器打开 NuGet v3 索引并不等于测试了包下载访问。索引通过 @type 和 @id 公布资源 URL;元数据和包内容可能托管在别处。
- 在还原输出中读取第一个失败的 URL、包 ID 和版本。
- 将该主机与源索引中的资源 URL 进行比较。
PackageBaseAddress/3.0.0提供版本枚举和包文件获取的基址。 - 与网络管理员审查所需路径时,要把重定向计算在内。
假设 feed.example 上的索引在 packages.example 上公布内容,包列表可能加载成功,而选中的 .nupkg 却被阻止。重复登录并不会使这些请求等价。缓存的包能成功,也说明不了另一个远程内容 URL 的情况。
遵循公布的资源,而不是猜测主机名。NuGet 会发现它,因为源基础设施可能变化;仅允许索引主机的规则可能覆盖不到。
对实际响应进行分类:407 要求代理身份验证,而策略拒绝、CONNECT 失败、主机不可达或 TLS 错误 都需要单独排查。相似的对话框会掩盖这些差别。应申请访问源中记录的各个资源主机,而不是申请无关产品的宽泛通配符清单,然后再排查任何仍然存在的账户故障。