在 .net Rider IDE 中恢复解决方案的 nuget 包:无法下载包 `x` 对 GET `x` 的 HTTP 请求在 100000 毫秒后超时

Posted

技术标签:

【中文标题】在 .net Rider IDE 中恢复解决方案的 nuget 包:无法下载包 `x` 对 GET `x` 的 HTTP 请求在 100000 毫秒后超时【英文标题】:Restoring nuget packages of a solution in .net Rider IDE: Failed to download package `x` The HTTP request to GET `x` has timedout after 100000ms 【发布时间】:2018-02-11 12:43:24 【问题描述】:

我有ArchLinux 发行版,我第一次在Linux 上测试.Net SDK。我安装了JetBrains Rider IDE 的试用版。我创建了新的 ASP.Net Core 项目,但在构建解决方案或手动恢复解决方案的 Nuget 包时,我在 Event Log 窗口中收到此错误消息:

下午 1:51 无法恢复集成项目中的 NuGet 包 无法从远程源检索有关“Microsoft.AspNetCore.WebUtilities”的信息 'https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.webutilities/index.json'。 设置日志包文件夹

下午 1:51 恢复失败 无法从远程源检索有关“Microsoft.AspNetCore.WebUtilities”的信息 'https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.webutilities/index.json'。 设置日志包文件夹

这是Log窗口内容,因为内容很大,所以我把它上传到谷歌驱动器:Here

以前有人遇到过这个问题吗?另外,为什么骑手试图获取地球上的所有 Nuget 包?我没有对Microsoft.Win32.Registry 的引用,并且这些错误行之一抱怨:

COREMINIMAL:下载包失败 'Microsoft.Win32.Registry.4.4.0'

编辑 1

之后,尝试dotnet restore 我得到以下输出:

$ dotnet restore

Permission denied to modify the '/opt/dotnet/sdk/NuGetFallbackFolder' folder.

Here are some options to fix this error:
---------------------
1. Re-run this command with elevated access.
2. Disabled the first run experience by setting the environment variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE to true.
3. Copy the .NET Core SDK to a non-protected location and use it from there.

  Restoring packages for /home/m/Prog Projects Mid 2018/CSharp/testingRider/WebApplication1/WebApplication1/WebApplication1.csproj...
  Failed to download package 'Microsoft.Win32.Registry.4.4.0' from 'https://api.nuget.org/v3-flatcontainer/microsoft.win32.registry/4.4.0/microsoft.win32.registry.4.4.0.nupkg'.
  The download of 'https://api.nuget.org/v3-flatcontainer/microsoft.win32.registry/4.4.0/microsoft.win32.registry.4.4.0.nupkg' timed out because no data was received for 60000ms.
    Exception of type 'System.TimeoutException' was thrown.
  Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.webutilities/index.json'.
  An error occurred while sending the request.
    SSL connect error
  Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.mvc.viewfeatures/index.json'.
  An error occurred while sending the request.

输出也很长,大部分是关于retrying下载包。

【问题讨论】:

我尝试明确下载其中一个包,骑手抱怨,手动形成浏览器并成功 对不起,我在家里运行它。 您是否可以在项目文件夹的终端中使用dotnet restore 恢复包? (见docs.microsoft.com/en-us/dotnet/core/tools/…) 您是否尝试过缓解工具输出建议的问题的步骤?您还可以根据我之前评论中附加的链接调整输出详细程度。 无论如何,这看起来更像是您和 NuGet 服务器之间的网络问题,与仅集成 dotnet sdk 的 Rider 无关。 【参考方案1】:

根据附加的 Rider 和dotnet 日志,这个问题与 Rider IDE 无关。

dotnet 的某些首次体验功能似乎需要访问 dotnet/sdk/NuGetFallbackFolder,但未提供此权限,因此您会在日志中看到错误,但这可能不是真正的根本情况。

根据日志消息The download of 'https://api.nuget.org/v3-flatcontainer/microsoft.win32.registry/4.4.0/microsoft.win32.registry.4.4.0.nupkg' timed out because no data was received for 60000ms.,问题出在您的计算机和 NuGet 服务器之间的网络中

您应该检查您的网络和 dotnet/NuGet 设置。

【讨论】:

问题是我的网络连接不是很稳定,可以说是随机稳定的。有时一个包会在 500-700 毫秒的时间范围内被下载,有时更多。真正的问题是dotnet使用parallel来加速包下载所以同时下载了多个包,解决方案只是禁用并行dotnet restore --disable-parallel所以只有一个文件同时下载,没有文件将需要超过 10 秒的限制,现在一切正常。 嗨,我也面临同样的问题。我正在使用 nuget.exe restore 来恢复包。但同样的错误只出现在一个包中,当我尝试从不同网络的构建机器恢复它时(我能够从该机器浏览那个工件 URL)。在同一网络的构建机器上,这个包正在恢复。你能就此提出建议吗? - 我尝试禁用并行进程。但同样的错误没有运气。 好吧,一般规则适用 - 您的 nuget 无法访问 nuget 服务器。您是否需要任何网络配置才能进入其他网络?代理?防火墙? @ZdeněkJelínek,除了一个,所有其他包都在恢复。并且还能够浏览链接。我们还可以考虑代理和防火墙(网络问题)吗? @ZdeněkJelínek,请查看此主题以获取更多信息-***.com/questions/61248102/…

以上是关于在 .net Rider IDE 中恢复解决方案的 nuget 包:无法下载包 `x` 对 GET `x` 的 HTTP 请求在 100000 毫秒后超时的主要内容,如果未能解决你的问题,请参考以下文章

在 Manjaro 上为 Rider IDE 安装 .NET core 2.0.0

在 Rider IDE 中使用 .gitignore

Linux下尝鲜IDE Rider .NET又一开发利器

Rider IDE 无法在 iPhone 设备上运行项目 Xamarin.iOS

JetBrains Rider IDE - 是不是可以调试 .Net Core 1.1.X?

无法在 Rider ide 中编辑项目属性