为什么我的NuGet客户端下载包失败?

JFrog支持
2023-01-22十一10

如果从nuget远程存储库(例如nuget库)下载(缓存)失败,请检查request.log,看看是否使用具有有效权限的用户发送了对nuget包的请求。


如果确实发送了带有有效凭据的请求,并且用户拥有缓存远程工件所需的所有权限,则问题可能与代理设置有关。


当尝试从nuget库下载nuget包时,nuget库会重定向到另一个下载服务器,因此代理必须允许从重定向的URL下载。


要确保问题不在Artifactory端,请尝试通过代理从Artifactory机器直接从nuget库下载所请求的包。通过这种方式,您将能够确定它是否是代理问题。



例如,你可以在Artifactory机器上运行以下命令(改变代理的详细信息),看看结果是什么:


curl -fv -x http://user:password@proxyhost:proxyport "http://www.nuget.org/api/v2/package/CKEditor/3.6.4" -L > file.pkg

*即将连接到代理本地主机端口8888 (#0)

*尝试127.0.0.1…

%总数%接收% Xferd平均速度时间时间时间电流

下载上传总花费左速度

0 0 0 0 0 0 0 0 -: -: - -: -:: - - - - - - - - - - - - - - - - - - 0*连接到本地主机(127.0.0.1)端口8888 (#0)

> GET http://www.nuget.org/api/v2/package/CKEditor/3.6.4 HTTP/1.1

> User-Agent: curl/7.29.0

>主机:www.nuget.org

>接收:*/*

>代理连接:保持连接

>

< HTTP/1.1 302找到

< Cache-Control: private

< font - family:宋体;utf - 8字符集=

<位置:http://az320820.vo.msecnd.net/packages/ckeditor.3.6.4.nupkg

< Server: Microsoft-IIS/8.0

< X-AspNetMvc-Version: 4.0

< X-AspNet-Version: 4.0.30319

< X-Powered-By: ASP。网

< X-Frame-Options: deny

< X-XSS-Protection: 1;模式=块

< X-Content-Type-Options: no嗅嗅

< Strict-Transport-Security: maxage=31536000;includeSubDomains

日期:2014年9月25日星期四21:41:24 GMT

< Content-Length: 176

< Proxy-Connection: Keep-alive

<

*忽略响应体

{[数据未显示]

100 176 100 176 00 788 0 -: -: -: -: - -: - - 792

连接到主机localhost的0号连接保持完整

*向此URL发出另一个请求:“http://az320820.vo.msecnd.net/packages/ckeditor.3.6.4.nupkg”

*即将连接到代理本地主机端口8888 (#1)

*尝试127.0.0.1…

连接到本地主机(127.0.0.1)8888端口(#1)

> GET http://az320820.vo.msecnd.net/packages/ckeditor.3.6.4.nupkg HTTP/1.1

> User-Agent: curl/7.29.0

>主机:az320820.vo.msecnd.net

>接收:*/*

>代理连接:保持连接

>

< http /1.1 200 ok

< Accept-Ranges: bytes

< Content-Type: application/zip

日期:2014年9月25日星期四21:41:25 GMT

< Etag: 0x8CFE8D69FC5DD93

<最后修改:星期三,2013年3月6日23:08:18 GMT

< Server: ECAcc (rhv/811F)

< X-Cache: HIT

< x-ms-blob-type: BlockBlob

< x-ms-lease-status:未锁定

< x-ms-request-id: ec05a099-0001-0073-110b-5c576a000000

< x-ms-version: 2009-09-19

< Content-Length: 1066902

< Proxy-Connection: Keep-alive

<

{[数据未显示]

100 1041k 100 1041k 00 1170k 0 -: -: - -: - -: - -: - - 1170k

*连接到主机localhost的连接#1完好无损

如您所见,在上面的示例中,nuget服务器将请求重定向到另一个下载服务器,客户机遵循重定向并下载文件。这也反映在NuGet文档

当代理出现问题时,您将看到与HTTP 200不同的状态。