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 без ответа, не знаю, что еще попробовать.
Ответы
Ответ 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).