为什么我的NuGet客户端下载包失败?
如果从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不同的状态。
