web-dev-qa-db-fra.com

Nuget: le serveur distant a renvoyé une erreur: (504) Timeout de la passerelle

J'utilise l'aperçu CTP 5 de Visual Studio 2015 et j'ai des problèmes pour installer certains packages.

Si j'utilise l'interface utilisateur de NPM, je reçois 

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

Si j'utilise la console PM avec Install-Package Ninject.MVC5, je reçois:

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'.

Si je tape: Install-Package Ninject.MVC5 -source nuget.org j'obtiens la même erreur d'interface utilisateur:

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

J'ai essayé cela depuis d'autres sources qui indiquent une solution mais aucun n'a fonctionné ... Je vois un problème similaire sur Nuget mais un correctif de code a été publié selon le référentiel github du 15 janvier.

Je ne suis pas sûr que ce soit de mon côté ou qu'il s'agisse d'un problème de serveur Nuget. Nous avons essayé de les contacter sur Twitter sans aucune réponse. Je ne sais pas quoi essayer d'autre.

25
Bart Calixto

J'ai trouvé une solution de contournement. Changez la source du paquet NuGet pour utiliser HTTP au lieu de HTTPS.

Dans Visual Studio (2015):
Tools / NuGet Package Manager / Package Manager Settings
Modifiez la valeur Source de nuget.org de
https://www.nuget.org/api/v2/
à
http://www.nuget.org/api/v2/

Si vous utilisez la CLI, vous pouvez faire de même en utilisant la commande nuget sources.

(Cette solution de contournement supprime évidemment le cryptage de vos demandes. Ainsi, toute personne recherchant des informations sera en mesure de savoir quels packages vous téléchargez. Utilisez-les à vos risques et périls.)

11
MEMark

J'avais le même problème et après avoir lutté pendant deux heures, je l'ai finalement compris.

Il semble y avoir un problème avec la dernière version de Nuget Source à l’URL https://www.nuget.org/api/v2/

Pour résoudre le problème ... allez dans Outils -> Gestionnaire de paquets NuGet -> Paramètres du gestionnaire de paquets, sous Sources de paquet, créez une nouvelle source de paquet
Nom: NugetSource
Source: http://packages.nuget.org/v1/FeedService.svc/

Déplacez la source nouvellement créée en haut de la liste sous Sources de package disponibles. Cliquez sur OK et redémarrez Visual Studio.

5
Maxwell Maake

Une autre solution consiste à utiliser un proxy HTTP lors de l'installation de NuGets.

Utilisez par exemple ProxyDNS ( http://proxydns.co/ ) en les définissant dans Windows Network and Sharing Center => [select your network connection] => Properties => Internet Protocol Version 4 (TCP/IPv4) => Properties => Use the following DNS server addresses:

Serveur DNS préféré: 74.207.242.213

Serveur DNS secondaire: 50.116.28.138

proxy settings

La raison pour laquelle cela fonctionne (peut-être que je ne suis pas un expert en réseau) est que le problème semble être une sorte de problème de résolution de nom (DNS) lié au réseau de diffusion de contenu (CDN) utilisé par NuGet pour l'hébergement des packages. 

Par exemple, aujourd'hui, je ne pouvais pas installer xunit 2.0 et la raison en est que https://az320820.vo.msecnd.net/packages/xunit.assert.2.0.0-rc1-build2826.nupkg est retourné avec (504 portail expiré. Si j'utilise HTTP au lieu de HTTPS http://az320820.vo.msecnd.net/packages/xunit.assert.2.0.0-rc1-build2826.nupkg le package se télécharge bien.

J'ai utilisé ProxyDNS pour résoudre le problème et cela a fonctionné à chaque fois jusqu'à présent.

1
jussi.mattila

Ce qui a fonctionné pour moi: je devais changer de type de réseau de "Réseau partagé/NAT" à "Ponté" en essayant d’exécuter NuGet dans une machine virtuelle (Parallels et macOS).

0
Matthias