Попытка соединения с Nuget не удалась "Невозможно загрузить индекс сервиса для источника"

При попытке подключиться к Nuget, появляется сообщение об ошибке ниже, а затем я не могу подключиться:

[nuget.org] Невозможно загрузить индекс сервиса для источника https://api.nuget.org/v3/index.json. Произошла ошибка при отправке запроса. Невозможно подключиться к удаленному серверу. Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через определенный промежуток времени, или не удалось установить соединение, так как подключенный хост не смог ответить 68.232.34.200:443

Я могу получить доступ к https://api.nuget.org/v3/index.json в моем браузере.

Это не дубликат. Другие ответы не решают мою проблему.

58 ответов

Для меня сработало удаление%AppData%\NuGet\NuGet.Config и перезапуск VS2019.

Подобно https://github.com/NuGet/Home/issues/3281

Вам нужно добавить настройки прокси в файл Nuget.Config. Для получения подробной информации перейдите по этой ссылке: раздел конфигурации Nuget и настройки прокси-сервера Nuget.

Я получил ту же ошибку при попытке просмотреть пакет NuGet, чтобы устранить тот же шаг, следующий ниже

1- перейти к %appdata%\NuGet\NuGet.config

2- Проверьте URL-адреса, указанные в этой конфигурации

3- Удалить URL, который не требуется

4- Перезапустите Visual Studio и проверьте

Откройте редактор реестра, нажав Win+ R и введитеregedit Enter

Перейдите к:

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

Измените значение DisabledByDefault ключ от 0 до 1

Затем перезапустите Visual Studio.

Подробнее о TLS.
Подробнее об этой проблеме в NuGet.

Это также может произойти из-за проблем с проверкой подлинности, поэтому может потребоваться повторная проверка подлинности в Visual Studio.

В этом случае вы можете просто запустить следующую команду из папки, в которой находится вашpackage.configнаходится файл (обычно это корень вашего проекта):

      dotnet restore --interactive

Вам будет предложено посетить URL-адрес сопряжения в браузере и ввести код сопряжения, например:

Для входа в веб-браузере откройте страницу https://microsoft.com/devicelogin и введите код C2DEJ87H для
аутентификации.

Для этого требуется .NET CLI, который включен в пакет SDK для .NET Core, который можно установить с https://learn.microsoft.com/en-us/dotnet/core/install/windows .

Кроме того, если при запуске nuget restoreкоманда, в вашей установке может отсутствовать подключаемый модуль nuget артефактов-credprovider , который можно установить с помощью:

      iex "& { $(irm https://aka.ms/install-artifacts-credprovider.ps1) }"

Если вы видите следующую ошибку, вам может потребоваться настроить учетные данные Azure Artifacts, см. Эту ссылку на Github, вы можете установить поставщик учетных данных, запустив сценарий PowerShell или вручную.

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

Идти к

Настройки (Глобальные настройки вашего ПК) > Сеть и Интернет> Прокси-сервер> Автоматическая настройка прокси-сервера> и отключите автоматическое определение настроек.

Я наткнулся на эту проблему при попытке запустить nuget.exe через Jenkins (настроенный как сервис, по умолчанию с использованием учетной записи локальной системы). Я редактировал 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"

В моем случае это было то, что я по незнанию полностью вышел из своей рабочей учетной записи. Повторный вход в мою учетную запись Visual Studio решил эту проблему.

Простой :

  1. Закрыть VS2019
  2. Перейти к C:\Users\you\AppData\Roaming\NuGet
  3. Удалить файл NuGet.Config
  4. Перезапуск VS2019

Готово!

У меня была аналогичная проблема при попытке подключиться к моему частному серверу TFS вместо общедоступного сервера API NuGet. По какой-то причине у меня возникла проблема между сервером 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, но это должно сработать.

В моем случае проблема заключалась в том, что я создавал более старую виртуальную машину, основанную на 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 по умолчанию отключен (проверьте DisabledByDefault стоимость ниже HKLM\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:Обновление для Windows 7 (KB3140245)

Я установил обновление, перезагрузился (в соответствии с запросом обновления), добавил эти ключи реестра, и Nuget заработал нормально.

В моем случае это произошло из-за того, что у меня нет подключения к Интернету, и он пытается строить леса.

Если вы получаете эту ошибку, но у вас нет прокси-сервера, вы можете перейти на

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>

Это сработало для меня, потому что я получал эту ошибку, но у меня нет прокси-сервера.

Один из ваших источников nuget может быть недоступен.

На момент написания AspNetCore (https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json), похоже, имеет просроченный сертификат или полностью удален.

Простое удаление источника nuget из ваших настроек должно решить эту проблему.

Стоит отметить, что это могла быть ошибка с аутентификацией SSL ядра.net. Отключение их последней реализации сетевого стека решило эту проблему для меня.

Вы можете установить это навсегда или просто запустить приложение, используя:

DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0 dotnet ...

Я потратил на это день и попробовал все здесь. Для меня это было то, что я не обновил свой пароль в Visual Studio!

Я изменил пароль своей рабочей учетной записи Microsoft на прошлой неделе или около того, я также использую эту учетную запись для входа в Visual Studio, однако мне не было предложено обновить ее, и я не вышел из Visual Studio, он остался в системе. Когда я щелкнул на моих инициалах в правом верхнем углу визуальной студии> Настройки учетной записи> в разделе «Все учетные записи» рядом с рабочей учетной записью был предупреждающий знак желтого восклицательного треугольника, обновлен новый пароль, затем обновлены некоторые пакеты, восстановление dotnet, очищение и перестроение, а ошибки ушел.

Некоторые среды разработки могут не использовать ни браузер, ни прокси.

Одним из решений будет загрузка пакета из самородка, такого как https://dotnet.myget.org/F/dotnet-core/api/v3/index.json в общий каталог, затем выполните следующее:

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

Я надеюсь, что это работает для вас.

Я использовал более старую версию Nuget на VS2010, где по умолчанию используется TLS 1.0, здесь это можно исправить, изменив версию TLS по умолчанию, используемую.Net framework, которая настроена в ключах реестра.

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 навсегда откажется от поддержки TLS 1.0 и 1.1 15 июня. Убедитесь, что ваши системы используют TLS 1.2.

Вы можете обратиться к этой ссылке для получения информации о поддержке TLS 1.2.

Что-то может изменить настройки вашего прокси, например Fiddler. Закройте Fiddler, затем закройте Visual Studio и откройте его снова.

Если вы являетесь пользователем Windows, вы можете удалить или обновить свои учетные данные в диспетчере учетных данных.

В Windows 10 перейдите по следующему пути:

Панель управления → Все элементы панели управления → Диспетчер учетных данных

Или найдите «менеджер учетных данных» в разделе «Поиск Windows» в меню «Пуск».

Затем в диспетчере учетных данных выберите «Учетные данные Windows».

Диспетчер учетных данных покажет множество элементов, включая ваш внешний вид и репозиторий GitHub в разделе «Общие учетные данные».

Вы нажимаете стрелку раскрывающегося списка в правой части вашего Git: и он покажет параметры для редактирования и удаления. Если вы удалите, всплывающее окно с учетными данными появится в следующий раз, когда вы выберете или потянете. Или вы можете напрямую редактировать учетные данные там.

Ошибка может быть вызвана только временной проблемой сети и исчезнуть, если попытаться снова.

ОК, я перепробовал все ответы выше и надеюсь, что мой реестр не засорен. Но это, кажется, исправило это для меня:

https://learn.microsoft.com/en-us/answers/questions/959588/visual-studio-2022-won39t-connect-to-nuget.html

Добавьте это: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384.

В строку, разделенную запятыми, в этом:

HKLM\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002

Я надеюсь, что это поможет следующему человеку, который надеется весело провести субботнее утро, чтобы проверить концепцию, а затем потратит 3 часа на поиск исправления !!!

У меня есть пара серверов Windows 2016, где Visual Studio не может подключиться к NuGet. Попробовав практически все другие предложенные исправления (изменения реестра, очистку кеша, связанную с Visual Studio/NuGet, или изменения файлов/конфигураций), ниже показано, что решило это для нас.

У нас есть групповая политика (GPO) с набором шифров, и я добавил эти шифры в наш список шифров GPO, чтобы он работал.

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

https://github.com/NuGet/Announcements/issues/60

У меня было такое же сообщение об ошибке при формировании шаблона Identity в моем проекте ASP.NET Core MVC. Поскольку мое соединение не было через прокси, удаление / редактирование конфигураций прокси не имело смысла. И я тоже не хотел ни удалять файл, ни удалять PMC. Осмотревшись, я обнаружил кнопку "Очистить все кеши NuGet" в меню "Инструменты" -> "Параметры" -> "Диспетчер пакетов NuGet" -> "Общие". После нажатия кнопки мне пришлось подождать некоторое время, пока операция завершится. После этого я снова попытался создать основу для идентификации, но это не сработало. Тогда я решил перезапустить VS и вуаля:)

nuget restore 

и

msbuild /t:restore

оба не работали для меня с той же ошибкой. Но

dotnet restore 

работал отлично. Попробуй это

Проверено на Windows 7

Шаг 1: Откройте окно команд (запустите 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:32reg add "HKLM \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Протоколы \ TLS 1.2 \ Клиент "/ v DisabledByDefault /t REG_DWORD /d 0 /f /reg:64reg add"HKLM \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ TLS 1.2 \ Client "/ v Включено / t REG_DWORD /d 1 /f /reg:32reg add "HKLM \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ TLS 1.2 \ Client" /v Включено / t REG_DWORD /d 1 /f /reg:64

Я пытался добавить источник NuGet артефактов Azure.

Я следовал инструкциям Microsoft здесь с одной критической оплошностью.

Я забыл заменить /v3/index.json с /v2.

В моем случае я потерял связь с Git. Я просто снова добавил соединение, и оно сработало!:

Я попробовал многие из перечисленных здесь ответов, но это не решило проблему. В конце концов, мне пришлось перейти к диспетчеру учетных данных в Windows, удалить запись VSCredentials_xxx в разделе «Учетные данные Windows» и перезапустить Visual Studio 2019.

После этого - при следующем запуске VS - VS наконец попросила меня ввести мои учетные данные прокси - и после их ввода доступ к Интернету для Visual Studio заработал.

(Казалось, что VS действительно давно хранила мои изначально заданные учетные данные прокси, но поскольку в нашей компании у них есть изменение пароля через 3 месяца, учетные данные больше не действительны)

Другие вопросы по тегам