2011-10-10 136 views
14

我想在工作中使用VS2010中的Nuget。当我尝试从官方饲料下载软件包时,它总是失败,出现403.访问公司代理后的Nuget官方包源代码

我读过Nuget将使用与IE相同的代理设置,这对我来说是不幸的,因为我的IE被锁定了。我无法更改代理。

我已经摆弄了反弹的feedservice网址,在IE中我得到一个错误,在Firefox中(与本地proxy.pac定义)的url解析罚款,我可以看到饲料。

有什么办法可以手动配置Nuget不使用IE的设置?

回答

21

背后如果你不能得到异常添加到您的代理,或者只是想立即解决,然后修改您的Visual Studio配置文件(devenv.exe.config)位于您的Visual Studio安装目录(如 - C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE)和改变/添加<system.net>配置部分的下面,这将让Visual Studio的工作与代理:

<system.net> 
    <defaultProxy useDefaultCredentials="true" enabled="true"> 
     <proxy proxyaddress="http://<Insert proxy address here>" /> 
    </defaultProxy> 
    <settings> 
     <servicePointManager expect100Continue="false" /> 
     <ipv6 enabled="true" /> 
    </settings> 
</system.net> 

所有你需要做的是将<Insert proxy address here>更改为您公司的代理地址。还取决于您的代理设置,您可以使用Expect100Continue消息,并且可能不需要更改该配置元素。你可以找到更多的信息here

+4

只是为了增加,.config文件可能需要作为管理员编辑,因为Program Files目录比以前更受保护。 –

+0

在没有安装VS的构建服务器上是否有类似的TFS配置文件?我后来可以看到这对我来说成了一个问题... –

2

嗯,我设法让IT部门允许无限制地访问packages.nuget.org,以便将它整理出来。我们在这里使用sophos,任何web请求都不喜欢它的外观被阻止。这适用于nuget网址。一种解决方法是使用Library Package Manager来启动一个运行Fiddler的安装。然后将被禁止的url复制到我的浏览器中,并告诉sophos它没问题。然后,我可以安装,包成功

希望这可以帮助任何人停留一个好战的防火墙

13

以下来自最近的一个相关问题我answered

下面是我为了使用NTLM身份验证的公司代理所做的工作。我下载NuGet.exe上的连结,this page,然后运行下面的命令(这是我在评论中发现this discussion CodePlex上):

nuget.exe config -set http_proxy=http://my.proxy.address:port 
nuget.exe config -set http_proxy.user=mydomain\myUserName 
nuget.exe config -set http_proxy.password=mySuperSecretPassword 

这把在位于%appdata%\NuGetNuGet.config以下(其中映射到C:\用户\ MyUserName输入\应用程序数据\我的Windows 7机器上漫游):

<configuration> 
    <!-- stuff --> 
    <config> 
     <add key="http_proxy" value="http://my.proxy.address:port" /> 
     <add key="http_proxy.user" value="mydomain\myUserName" /> 
     <add key="http_proxy.password" value="base64encodedHopefullyEncryptedPassword" /> 
    </config> 
    <!-- stuff --> 
</configuration> 

顺便说一句,这也是固定我的问题与只的NuGet工作我第一次打PA Visual Studio中的ckage源代码。

注意一些谁也尝试过这种做法已经报道through the comments on my other answer,他们已经能够省略设置在命令行中http_proxy.password键,或后的,其实从配置文件删除它,是仍然能够通过代理获得NuGet功能。

如果找到,但是,你必须指定的的NuGet配置文件密码,请记住,你必须在命令行更新中的NuGet配置存储的密​​码,当您更改网络登录,如果您的代理凭证也是您的网络凭证

+1

Snif ...对于407不起作用。无论如何,这里不是。 – Benjol

+0

@Benjol为了解决我办公室里代理服务器后面的407个错误,这个技巧。对不起,它不适合你。也许你可以尝试使用NuGet命令行中的各种http_proxy设置来查看是否有任何运气。 – arcain

+0

我应该补充说,这是专门用于nuget'自动下载'nuget.exe文件到.nuget文件夹中的情况。当动作是“用户启动”时,代理显然知道它是'我',所以这是有效的。从那时起[我已经放弃](http://stackoverflow.com/a/20660920).nuget文件夹。 – Benjol

0

我在通过Nuget控制台访问Nuget网站时遇到了问题。 “”收到来自传输流的意外EOF或0字节。“它最终成为代理问题,不同之处在于我的工作代理是'不可见的',并且没有配置选项。我通过以下步骤解决了我的问题。

  1. 打开Visual Studio作为管理员
  2. 打开Visual Studio的内部浏览器(视图|其他窗口| Web浏览器)
  3. 转到您的银行网站 - 或其他网站使用SSL
    可能需要实际登录到网站,我没有。
  4. 然后在Nuget控制台中运行Install-package命令。
  5. 命令正常工作。

这可能有助于下列问题:

我希望这有助于。

2

如果您不知道代理设置,是的NuGet要求代理用户名和密码,你可以尝试增加devenv.exe.config文件在您的Visual Studio安装目录,<system.net>标签之间:

<defaultProxy useDefaultCredentials="true" enabled="true"> 
    <proxy usesystemdefault="True"/> 
</defaultProxy> 

它应该是这样的,这取决于你的VisualStudio:

<system.net> 
    <defaultProxy useDefaultCredentials="true" enabled="true"> 
     <proxy usesystemdefault="True"/> 
    </defaultProxy> 
    <settings> 
     <ipv6 enabled="true" /> 
    </settings> 
    </system.net> 

它为我,甚至没有给代理地址:) 真的,这应该是默认的行为,我失去了这么多天的努力克服这个...