NuGet返回503服务器不可用

时间:2012-08-20 03:42:20

标签: nuget visual-studio-2012 nuget-package nuget-server

当Visual Studio包管理器(NuGet)响应“远程服务器返回错误:(503)服务器不可用”消息时,有没有办法从备用服务器加载包?

6 个答案:

答案 0 :(得分:24)

这是一个模糊的情况,可能只会出现在“企业”网络环境中。如果这些条件适用于您:

  • 您需要通过HTTP代理服务器访问Internet

  • HTTP代理服务器需要有效的用户ID&密码(或AD身份验证)以允许请求继续

  • 你一直在搞乱从Linux / Unix环境移植到Windows的很酷的开发者工具

  • 新的酷工具在添加HTTP_PROXY(或可能是HTTPS_PROXY或两者)之后工作environment variable(s)

  • 您可以通过浏览器访问NuGet服务器,而不会获取503错误

然后你可能会无意中调用this configuration feature来破坏NuGet。我不确定环境变量是如何打破NuGet的,但我怀疑NuGet正在检测&使用http_proxy URL但发送一个空的用户ID&密码,导致HTTP代理拒绝请求。

修复:删除您添加的环境变量,看看酷工具是否可以配置为使用没有它们的HTTP代理。

更新:使用上面“此配置功能”链接中引用的NuGet配置文件进入此问题的版本。打开此文件:

%APPDATA%\的NuGet \ nuget.config

在你最喜欢的编辑器中。如果它包含 http_proxy https_proxy 的元素,那么删除这些元素也可以解决问题。

PS:希望我能得到Panic上校的投票: - )

答案 1 :(得分:5)

如果您以前使用过该软件包,则可能是在您的缓存中。您可以通过进入Visual Studio中“工具”菜单下的“库包管理器设置”,将本地缓存添加为可用包源。对于Visual Studio 2012,请选择“工具”,“库包管理器”,“包管理器设置”,然后单击“包源”。

在“可用包源”部分中,键入“缓存”之类的名称,然后输入源,浏览到%LocalAppData%\ NuGet \ Cache 。您可能需要使用Windows资源管理器将%LocalAppData%\ NuGet \ Cache转换为完整路径(通常为 C:\ Users \ YourAccountName \ AppData \ Local \ NuGet \ Cache )。

将缓存作为可用来源后,您现在可以使用程序包管理器控制台(位于“其他Windows”下的“视图”菜单下或“库程序包管理器”下的“工具”菜单下)。

从控制台(具有NuGet命令行开关的PowerShell窗口)中,您可以键入“get-help NuGet”以查看可用命令。

然后使用 Get-Package ,您可以获得包ID列表。确保“包源”设置为“缓存”(或任何您调用的),并将默认项目设置为您需要操作的项目,这两个都是位于页面管理器控制台顶部的下拉列表。您还可以使用Get-Project来验证您是否正在解决解决方案中的正确项目。

最后,您可以键入 Install-Package ,并在出现提示时从Get-Package命令行开关的输出中输入包ID。

答案 2 :(得分:1)

我也有这个问题,这是因为我的网络。 如果您的互联网上有任何阻止,(如公司互联网或其他...) 你可能不允许下载nuget包。

尝试在另一个网络中下载该软件包,也许它可以帮助您!

答案 3 :(得分:0)

Talbott的回答对我不起作用,因为我的缓存是空的。但是,如果您在其他解决方案中使用了该程序包,则可以将所需的项目从其他解决方案中的“packages”文件夹复制到目标解决方案中的packages文件夹中。

如果目标解决方案中没有安装软件包,则可能需要将以下内容添加到packages文件夹中的repositories.xml文件中:

<?xml version="1.0" encoding="utf-8"?>
<repositories>
</repositories>

执行此操作后,软件包似乎已安装在我的解决方案中,我可以将它们添加到项目中。

附加说明:我必须在解决方案级别使用“管理解决方案的NuGet包”选项,将包添加到各​​个项目中。即使程序包已经安装在解决方案中,从控制台使用Install-Package仍会返回503。

答案 4 :(得分:0)

如果您使用的是VPN客户端(例如Cisco AnyConnect)并且最近续订了VPN证书,也会出现此错误。更新证书后,但在重新启动之前,可能会出现此问题。重启可以解决问题。

答案 5 :(得分:0)

这是一个很老的问题,但是我刚刚遇到了同样的问题。就我而言,这是因为我在Visual Studio程序包管理器中配置了多个nuget程序包源。在我的公司中,我们使用NuGet获取主流软件包,并使用MyGet获取我们自己的东西。

当我尝试提取一个很大的包时,它失败并显示503代码,并且错误链接看起来很奇怪,它包含MyGet而不是NuGet。事实证明,尽管选择了NuGet作为当前源,Visual Studio程序包管理器仍试图从另一个源中提取它。禁用其他来源,然后进行下载修复。

希望它将对像我一样偶然发现此线程的人有所帮助。