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

时间:2016-12-16 13:24:34

标签: c# .net visual-studio nuget

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

  

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

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

这不是重复的。其他答案并没有解决我的问题。

41 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:9)

通过按 Win + R 打开注册表编辑器,然后键入postgresql.JSON() Enter

导航至:

regedit

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client 键0的值更改为1

然后重新启动Visual Studio。

Read more about TLS

答案 2 :(得分:5)

删除%AppData%\ NuGet \ NuGet.Config并重新启动VS2019对我有用。

类似于https://github.com/NuGet/Home/issues/3281

答案 3 :(得分:3)

转到

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

答案 4 :(得分:3)

当尝试通过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"

答案 5 :(得分:2)

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

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

答案 6 :(得分:2)

尝试浏览NuGet软件包时遇到相同的错误,请按照以下步骤进行操作

1-转到%appdata%\NuGet\NuGet.config

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

3-删除不需要的网址

4-重新启动Visual Studio并检查

答案 7 :(得分:1)

您的 nuget 来源之一可能无法访问。

在撰写本文时,AspNetCore (https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json) 的证书似乎已过期或已被完全删除。

Can't access the JSON file

只需从您的设置中删除 nuget 源即可解决此问题

Removing Nuget Source from Visual Studio

答案 8 :(得分:1)

我在 Visual Studio 2015 上尝试执行 Install-Package Modernizr 时遇到了类似的问题。我按照以下步骤解决了我的问题:

  1. 从其在线来源下载软件包。
  2. 转到工具/NuGet 包管理器/包管理器设置
  3. 从窗口中选择包来源
  4. 点击 + 号添加新的包源。点击...(三点)符号,输入名称和来源位置。
  5. 确保只检查您刚刚添加的包源。取消选中所有其他包来源。
  6. 转到包管理器控制台并输入 Install-Package Modernizr
  7. Visual Studio 2015 会自动安装包并在您的根文件夹中创建 Scriptspackages 文件夹。

我希望同样的解决方案在安装其他软件包时也能奏效。

答案 9 :(得分:1)

就我而言,问题是我在基于 Win7 的旧虚拟机上构建。

我从 https://github.com/NuGet/NuGetGallery/issues/8176#issuecomment-683923724 找到了这个修复:

<块引用>

nuget.org 开始强制使用 TLS 1.2(并放弃支持 TLS 1.1 和 1.0)今年早些时候。 Windows 7 禁用了 TLS 1.2 默认情况下(检查下的 DisabledByDefaultHKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client 在您的注册表中)。要启用支持,请确保您安装了更新 (*) 并打开支持:

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v DisabledByDefault /t REG_DWORD /d 0 /f /reg:32
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v DisabledByDefault /t REG_DWORD /d 0 /f /reg:64
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v Enabled /t REG_DWORD /d 1 /f /reg:32
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v Enabled /t REG_DWORD /d 1 /f /reg:64

所指的 (*) 更新是 Microsoft kb3140245: Update for Windows 7 (KB3140245)

我安装了更新,重新启动(按照更新的要求),添加了那些注册表项,然后 Nuget 工作正常。

答案 10 :(得分:1)

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

enter image description here

答案 11 :(得分: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。

您可以参考此link以获得有关TLS 1.2支持的信息

答案 12 :(得分: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服务器的问题所在,但这应该可以解决。

答案 13 :(得分:1)

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

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

DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0 dotnet ...

答案 14 :(得分:1)

错误可能只是暂时的网络问题引起,如果再试一次就会消失。

答案 15 :(得分:1)

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

C:\的Windows \ system32 \设置\ systemprofile \应用程序数据\漫游\的NuGet \ NuGet.Config

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

答案 16 :(得分:1)

我正在使用VSO / Azure DevOps。

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

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

答案 17 :(得分:1)

有些东西可能会改变你的代理设置,比如Fiddler。关闭Fiddler,然后关闭Visual Studio并再次打开它。

答案 18 :(得分:1)

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

enter image description here

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

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

    enter image description here

  4. 重新启动系统

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

  6. 您还应该转到Services.msc并确保服务Docker EngineDocker for Windows Service正在运行。

    enter image description here

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

    <?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>

    希望这会有所帮助。

答案 19 :(得分:0)

安装提琴手导致了我类似的问题。卸载小提琴手并从machine.config(从Framework和Framework64)中删除小提琴手代理即可解决此问题。

答案 20 :(得分:0)

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

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

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

我希望这对你有用。

答案 21 :(得分:0)

在 Windows 7 上测试

第一步:打开命令窗口(运行cmd) 第 2 步:运行以下命令以启用 TLS 1.2 支持(如果已禁用)(添加 REGISTRY 条目):

"HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v DisabledByDefault /t REG_DWORD /d 0 /f /reg:32 reg 添加“HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client” /v DisabledByDefault /t REG_DWORD /d 0 /f /reg:64 reg 添加“HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client” /v 启用 /t REG_DWORD /d 1 /f /reg:32 reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v 启用 /t REG_DWORD /d 1 /f /reg:64

答案 22 :(得分:0)

我在尝试在本地托管的 Gitlab 实例中设置 NuGet 包时遇到此错误。错误指示 401 未经授权的代码。解决方案是删除有问题的来源:

nuget source Remove -Name SOURCE_NAME

然后添加相同的源,但这次在命令中指定用户名和密码:

nuget source Add -Name SOURCE_NAME -Source SOURCE_URL -UserName GITLAB_DEPLOY_TOKEN_USERNAME -Password GITLAB_DEPLOY_TOKEN

答案 23 :(得分:0)

  1. 转到%appdata%\NuGet\NuGet.config

  2. 修改这一行:

    <packageSources>
        <add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
        <add key="Package source" value="https://api.nuget.org/v3/index.json" />
    </packageSources>
    

答案 24 :(得分:0)

我无法解决源问题,但是使用此命令,我能够安装nuget软件包。

您需要直接将nuget.org指定为源。

Update-Package -reinstall -Source nuget.org

(使用程序包管理器控制台)

答案 25 :(得分:0)

nuget restore 

msbuild /t:restore

都没有出现同样的错误,对我不起作用。但是

dotnet restore 

做得完美。试试吧

答案 26 :(得分:0)

转到->工具->扩展和更新并卸载NuGet程序包管理器。.重新启动Visual Studio并重新安装它。...一切都会设置为正常

答案 27 :(得分:0)

在我的情况下,我运行了Fiddler,这更改了我的代理设置

答案 28 :(得分:0)

在我的情况下,

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

答案 29 :(得分:0)

设置PC->网络和Internet代理->然后是自动代理设置 将自动检测设置设置为关闭并清除脚本地址

答案 30 :(得分:0)

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

答案 31 :(得分:0)

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

enter image description here

答案 32 :(得分:0)

我试图添加Azure Artifacts NuGet源。

我严格按照Microsoft的here的指示进行操作。

我忘记将/v3/index.json替换为/v2

enter image description here

答案 33 :(得分: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>-->

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

答案 34 :(得分:0)

确保docker在本地计算机上运行。 build命令可以运行,但需要运行的docker才能获取网络数据。

我认为这会有所帮助。

答案 35 :(得分:0)

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

答案 36 :(得分:0)

在我的情况下,发生这种情况是因为我没有互联网连接,并且它正在尝试脚手架

答案 37 :(得分:0)

也许this可以帮助

  

对我来说,删除C:\ Users \ YourName中的.nuget文件夹,这里已解决了该问题。

答案 38 :(得分:0)

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

C:\Users\Marlon_007\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>

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

答案 39 :(得分:-1)

我已通过以下步骤解决了该问题

  1. 单击运行搜索此%APPDATA%\ NuGet \ NuGet.config。

  2. 打开设置并在NuGet.config中添加此http_proxy键。

  3. 然后,您将可以在应用程序中安装BouncyCastle.Crypto.dll。

谢谢!如果您有帮助,欢迎您答复。

答案 40 :(得分:-1)

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

希望这会有所帮助。