Подтвердить что ты не робот

Nuget: удаленный сервер ответил на ошибку: (504) Timeout Timeout

Я использую Visual Studio 2015 для предварительного просмотра CTP 5, и у меня возникают проблемы с установкой некоторых пакетов.

Если я использую пользовательский интерфейс NPM, я получаю

The remote server returned an error: (504) Gateway Timeout.

Если я использую консоль PM с Install-Package Ninject.MVC5, я получаю:

The source at nuget.org [https://www.nuget.org/api/v2/] is unreachable. Falling back to NuGet Local Cache at {userfolder}\AppData\Local\NuGet\Cache
Install-Package : Unable to find package 'Ninject.MVC5'.

Если я набираю: Install-Package Ninject.MVC5 -source nuget.org, я получаю ту же ошибку интерфейса:

Install-Package : The remote server returned an error: (504) Gateway Timeout.

Я попробовал это из других источников, которые указывают на решение, но никто не работал. Я вижу аналогичную проблему для nuget, но код "fix" был выпущен в соответствии с реестром github 15 января.

Я не уверен, что это на моем конце или проблема с nuget-сервером, попытался связаться с ними в Twitter без ответа, не знаю, что еще попробовать.

4b9b3361

Ответ 1

Я нашел обходное решение. Измените источник пакета NuGet для использования HTTP вместо HTTPS.

В Visual Studio (2015):
Tools / NuGet Package Manager / Package Manager Settings
Измените значение Source nuget.org на
https://www.nuget.org/api/v2/
для изображения http://www.nuget.org/api/v2/

Если вы используете CLI, вы можете сделать то же самое, используя команду nuget sources.

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

Ответ 2

У меня была такая же проблема, и после того, как я боролся пару часов, я наконец получил ее.

Кажется, что проблема с более поздней версией источника nuget на url https://www.nuget.org/api/v2/

Чтобы устранить проблему... перейдите в Инструменты → Диспетчер пакетов NuGet → Параметры диспетчера пакетов, в разделе Источники пакетов создайте новый источник пакета
Имя: NugetSource
Источник: http://packages.nuget.org/v1/FeedService.svc/

Переместите вновь созданный источник в начало списка в разделе Доступные источники пакетов. Нажмите "ОК" и перезапустите Visual Studio.

Ответ 3

Другим обходным решением является использование прокси-сервера HTTP при установке NuGets.

Используйте, например, ProxyDNS (http://proxydns.co/), установив их в Windows Network and Sharing Center => [select your network connection] => Properties => Internet Protocol Version 4 (TCP/IPv4) => Properties => Use the following DNS server addresses:

Предпочтительный DNS-сервер: 74.207.242.213

Альтернативный DNS-сервер: 50.116.28.138

proxy settings

Причина, по которой это работает (возможно, я не эксперт по сети) заключается в том, что проблема заключается в том, что проблема связана с проблемой разрешения имен (DNS), связанной с сетью доставки контента (CDN), которую NuGet использует для размещения пакеты.

Например, сегодня я не смог установить xunit 2.0, и причина в том, что https://az320820.vo.msecnd.net/packages/xunit.assert.2.0.0-rc1-build2826.nupkg, возвращаемый с (504) Timeout Timeout, Если я использую HTTP вместо HTTPS http://az320820.vo.msecnd.net/packages/xunit.assert.2.0.0-rc1-build2826.nupkg, пакет загрузится ОК.

Я использовал ProxyDNS, чтобы обойти проблему, и это работало каждый раз до сих пор.

Ответ 4

Что сработало для меня: мне пришлось изменить тип сети с "Shared Network/NAT" на "Bridged" при попытке запустить NuGet внутри виртуальной машины (Parallels и macOS).