Nuget连接尝试失败“无法加载源的服务索引”


80

尝试连接到Nuget时,出现以下错误,然后我无法连接:

[nuget.org]无法加载源https://api.nuget.org/v3/index.json的服务索引 。发送请求时发生错误。无法连接到远程服务器连接尝试失败,因为一段时间后连接方未正确响应,或者由于连接的主机未能响应68.232.34.200:443,建立的连接失败

我可以https://api.nuget.org/v3/index.json在浏览器上访问。

它不是重复的。其他答案不能解决我的问题。



由于您已在另一个线程上发布了相同的问题(stackoverflow.com/questions/41157069/nuget-not-connecting),因此请在上一个线程上继续此问题。我还将在您以前的主题中关注此问题。
薇薇

您在计算机上配置了代理吗?还是在环境变量中配置了“ http_proxy”变量?
Eddie Chen-MSFT

是的,我的计算机上正在运行多个代理。当我安装提琴手。我能够访问nuget。我有公司代理。
DarthVader '16

1
我刚刚重新启动了Visual Studio,它起作用了!
Shridhar R Kulkarni

Answers:


28

您需要将代理设置添加到Nuget.Config文件中。有关详细信息,请参阅此链接:Nuget Config部分Nuget代理设置


对我来说,我设置了一个http_proxy环境变量是错误的。
马丁·布朗

2
我也遇到了这个问题,并在命令行中将其删除,但是现在问题又回来了,但是我目前没有设置代理。任何想法仍然可能出问题吗?
Dan Csharpster

3
坚持了同样的问题
瑞法特埃德姆·沙辛

1
配置文件应该位于%AppData%\ NuGet \或C:\ Users \ WindowsLoginName \ AppData \ Roaming \ NuGet
VivekDev

17

通过按Win+R并键入来打开注册表编辑器regedit Enter

导航:

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client

DisabledByDefault键0的值更改为1

然后重新启动Visual Studio。

阅读有关TLS的更多信息
阅读有关NuGet的更多信息


2
通过解释为什么这可以解决问题来改善您的答案。
BigM

谢谢。这对我有用。我收到以下错误消息:“还原NuGet软件包时发生错误:无法加载源api.nuget.org/v3/index.json的服务索引。[nuget.org]无法加载源api.nuget的服务索引。 org / v3 / index.json。发送请求时出错。请求被中止:无法创建SSL / TLS安全通道”。
chanakya sankritayana

有效。但为什么?是什么导致此问题?怎么有胆敢像那样改变注册表?为了什么呢
花生

2
据我所知DisabledByDefault在Windows 10的默认设置中,此注册表项的值为1。但是,Windows Updater或Visual Studio Updater可能会将其更改为0。这就是Visual Studio无法连接https安全站点的原因。
拉齐

1
这个技巧实际上解决了这个问题,而我的其他.NET应用程序也解决了!
0xabc

10

尝试浏览NuGet软件包时遇到相同的错误,以解决以下步骤中的相同问题

1-去 %appdata%\NuGet\NuGet.config

2-验证该配置中提到的网址

3-删除不需要的网址

4-重新启动Visual Studio并检查


7

当尝试通过Jenkins(默认配置为服务,默认使用本地系统帐户)运行nuget.exe时,我偶然发现了这个问题。我已经编辑C:\Windows\System32\config\systemprofile\AppData\Roaming\NuGet\NuGet.Config了如下文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <config>
        <add key="http_proxy" value="http://proxy_hostname_or_ip:3128" />
        <add key="https_proxy" value="http://proxy_hostname_or_ip:3128" />
    </config>

  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>

</configuration> 

为了测试命令提示符,可以通过PSTools启动:

psexec -i -s CMD

并在新创建的cmd窗口中运行实际测试(作为本地系统运行):

path_to_nuget\nuget.exe restore "path_to_solution\theSolution.sln"

6

设置(PC的全局设置)>网络和Internet>代理>自动代理设置>并将自动检测设置设置为关闭。



3

值得注意的是,.net核心SSL身份验证存在一个错误,可能会导致此错误。禁用他们最新的网络堆栈实现,为我解决了这个问题。

您可以永久设置此设置,也可以仅使用以下方法启动应用程序:

DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0 dotnet ...

3

就我而言,这是因为我没有互联网连接,并且正在尝试搭建脚手架


同样在这里。w处于离线状态,并且出现了相同的问题。
Ja Rek

2

某些东西可能会更改您的代理设置,例如Fiddler。关闭Fiddler,然后关闭Visual Studio并再次将其打开。


1
谢谢!当Docker构建由于Mac上的TLS问题而无法还原nuget时,关闭Fiddler Everywhere为我解决了这一问题。拯救了我的一天。
SofterThoughts

2

如果看到以下错误,则可能需要设置Azure Artifacts凭据,请参阅此Github链接,您可以通过运行Powershell脚本或手动安装凭据提供程序。

error :   Response status code does not indicate success: 401 (Unauthorized).

1
这(最终)帮助了我。
戴夫·克劳森


1

我正在使用VSO / Azure DevOps。

您也可以直接在浏览器中访问提要URL。您可能最终得到包含如下消息的响应,这可能会使您的诊断更快:

The user does not have a license for the extension ms.feed.


是的,我今天也注意到了这一点。在VS中的常规非dotnet核心项目中工作正常,但是却杀死了docker容器中的示例核心项目(尽管它不需要或不需要我们的公司Azure DevOps托管的NuGet回购中的任何东西)已死了。不确定在没有该Feed许可证的情况下如何解决此问题,但这种情况不会发生。当然这一定是一个错误,因为您不能与core一起使用的NuGet存储库有什么意义?
史蒂夫·佩蒂弗

如果您没有从存储库中使用任何内容,请查看是否可以从NuGet.Config文件中删除该源。我们有一个可以访问提要的构建代理,因此它对我们有用。
ps2goat

如果可以的话。我可悲地需要该回购中的东西(我在原始注释中误认了,否则我会在NuGet配置中注释掉或删除该源,但这会影响使用它的其他项目)。发生这种情况似乎是,一旦我(最终)将我的MSDN子项分配给我,我在Azure DevOps中的用户特权级别将增加/增加,并且我将获得对package sources扩展的访问权限,这将使这项工作有效。似乎有点傻,但是确实如此。
史蒂夫·佩蒂弗

1

就我而言,我只是重新启动了docker并开始工作。


1

RUN dotnet restore在中Dockerfile使用usingdocker-compose up命令运行时遇到了同样的错误Windows 10

在此处输入图片说明

我已经尝试了Internet上提供的所有可能的解决方案,并一直关注这个开放的问题。最后,在花费了8个多小时之后,按照上述步骤操作,我得以解决问题。

  1. Docker从系统卸载
  2. 重新启动系统
  3. Docker从此链接安装。以下是我的Docker版本

    在此处输入图片说明

  4. 重新启动系统

  5. 启动适用于Windows的Docker,Docker在Windows的搜索栏中搜索。确保它正在运行。

  6. 你也应该去Services.msc,并确保服务Docker EngineDocker for Windows Service运行。

    在此处输入图片说明

  7. 最后,您必须从检查您的Nuget.config文件C:\Users\{Username}\AppData\Roaming\NuGet。对我来说,该文件的内容如下。

    <?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> </packageSources> <packageRestore> <add key="enabled" value="True" /> <add key="automatic" value="True" /> </packageRestore> <bindingRedirects> <add key="skip" value="False" /> </bindingRedirects> <packageManagement> <add key="format" value="0" /> <add key="disabled" value="False" /> </packageManagement> </configuration>

    希望这可以帮助。


1

我尝试连接到私有TFS服务器而不是公共NuGet API服务器时遇到类似的问题。由于某种原因,我在AD服务器和TFS服务器之间遇到问题,因此它总是返回401。NuGet配置文章显示,您可以将AD用户名和密码添加到配置文件中,如下所示:

  <packageSourceCredentials>
      <vstsfeed>
          <add key="Username" value="yourname@company.com" />
          <add key="Password" value="this is an encrypted password" >
          <!-- add key="ClearTextPassword" value="not recommended password" -->
      </vstsfeed>
  </packageSourceCredentials>

这不是一个理想的解决方案,更多的是临时的解决方案,直到我弄清楚AD服务器的问题所在,但这应该可以解决。


1

我在VS2010上使用的是Nuget的旧版本,默认情况下为TLS 1.0,可以通过更改注册表项中配置的.Net框架使用的默认TLS版本来修复。

reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64

reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:32

费耶

NuGet.org将于6月15日永久删除对TLS 1.0和1.1的支持。请确保您的系统使用TLS 1.2。

您可以参考此链接以获取有关TLS 1.2支持的信息


1

将Identity脚手架安装到ASP.NET Core MVC项目时,出现了相同的错误消息。由于我的连接不在代理后面,因此删除/编辑代理配置没有任何意义。而且我也不想删除文件或卸载PMC。环顾四周时,我在工具->选项-> NuGet软件包管理器->常规上实现了“清除所有Nuget缓存”按钮。按下按钮后,我必须等待一段时间才能完成操作。在那之后,我尝试再次架起身份,但是它没有用。然后我决定重新启动VS和voila :)

在此处输入图片说明


0

某些开发环境可能既不使用浏览器也不使用代理。

一种解决方案是将软件包从诸如的包下载https://dotnet.myget.org/F/dotnet-core/api/v3/index.json到共享目录,然后执行以下操作:

dotnet add package Microsoft.AspNetCore.StaticFiles -s "shared drive:\index.json"

希望对您有用。  


0

为了支持@Eddie Chen(在此处)提供的答案,我还必须在以下文件中添加http_proxy设置:

C:\ Windows \ system32 \ config \ systemprofile \ AppData \ Roaming \ NuGet \ NuGet.Config

<add key="http_proxy" value="http://your_proxy_url:8080" />


0

就我而言,我正在运行Fiddler,这更改了我的代理设置


0

就我而言,我必须在Visual Studio的Options-> NugetPAckageManager-> sources中添加源,然后重新启动Visual Studio命令提示符


0

我遇到此错误,然后我意识到我是使用个人Microsoft帐户而不是工作帐户登录的。

希望这可以帮助。


谢谢,有时太简单了:)
albin

0

如果出现此错误,但没有代理服务器,则可以转到

%userprofile%\AppData\Roaming\NuGet\NuGet.Config

并注释以下行:

<config>
     <!-- Proxy settings -->
     <add key="http_proxy" value="host" />
     <add key="http_proxy.user" value="username" />
     <add key="http_proxy.password" value="encrypted_password" />
</config>

它对我有用,因为我遇到了该错误,但是我没有代理服务器。




0

如果使用Visual Studio 2019,如果您未在devenv.exe.config中使用任何默认代理,则只需删除``defaultproxy''部分即可。在VS 2017中,此部分不存在

更改

<defaultProxy enabled="true" useDefaultCredentials="true">
    <proxy bypassonlocal="True" proxyaddress="http://<yourproxy:port#>"/>
</defaultProxy>

<!--<defaultProxy enabled="true" useDefaultCredentials="true">
    <proxy bypassonlocal="True" proxyaddress="http://<yourproxy:port#>"/>
</defaultProxy>-->

否则,请提供适当的代理用户名和密码。


0

我试图添加Azure Artifacts NuGet源。

在这里,我按照Microsoft的指示进行了严格的监督。

我忘了替换/v3/index.json/v2

在此处输入图片说明


0

即使禁用了代理设置,Nuget似乎仍在使用代理脚本地址(用于我们的VPN)。我删除了脚本地址,它可以工作。

在此处输入图片说明


0

如果您在公司代理后面并且在Mac上,只需确保选中并应用了http / https复选框。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.