Visual Studio 2015中的程序包管理器" 407(需要代理身份验证)"

时间:2016-03-30 13:52:30

标签: visual-studio visual-studio-2015 nuget package-managers nugetgallery

我知道这是一个经常被问到的问题,但经过几天的研究后,我还没有找到这个问题的答案。

我有一个新的ASP.NET 5(Core 1.0)MVC模板,我试图在每次进入Package Manager输出时添加一个包:

Response status code does not indicate success: 407 (Proxy Authentication Required). 

以及解决方案资源管理器顶部的以下内容:

enter image description here

我的设置看起来很好,我可以在“管理解决方案包”中浏览包裹。屏幕。

我理解我被要求提供凭据,以便我在哪里输入凭据?另一方面,我机器上的所有其他应用程序都验证了互联网访问,那我为什么要这样做呢?

非常欢迎任何想法/指示。

Visual Studio 2015 - 14.0.24720.00更新1
Visual Studio 2015的NuGet包管理器 - 3.3.0.167

Package Manager输出的顶部:

安装NuGet包AutoMapper.4.2.1。
已成功安装' AutoMapper 4.2.1'致CustomerPortal
==========完成==========
PATH =。\ node_modules.bin;%PATH%; C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Extensions \ Microsoft \ Web Tools \ External; C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Extensions \ Microsoft \ Web Tools \ External \ git
C:\ Users \ medmondson.dnx \ runtimes \ dnx-clr-win-x86.1.0.0-rc1-update1 \ bin \ dnx.exe" C:\ Users \ medmondson.dnx \ runtimes \ dnx-clr -WIN-x86.1.0.0-RC1-UPDATE1 \ BIN \ lib中\ Microsoft.Dnx.Tooling \ Microsoft.Dnx.Tooling.dll"恢复" M:\ visual studio 2015 \ Projects \ CustomerPortal \ src \ CustomerPortal" -f" C:\ Program Files(x86)\ Microsoft Web Tools \ DNU"
Microsoft .NET开发实用程序Clr-x86-1.0.0-rc1-16231
  获得https://www.nuget.org/api/v2/
  获得http://packages.nuget.org/v1/FeedService.svc/
  获得https://www.postsharp.net/nuget/packages/
恢复M:\ visual studio 2015 \ Projects \ CustomerPortal \ src \ CustomerPortal \ project.json的包   获取https://www.nuget.org/api/v2/FindPackagesById()?id=' AutoMapper'
  获取http://packages.nuget.org/v1/FeedService.svc/FindPackagesById()?id=' AutoMapper'
  获取https://www.postsharp.net/nuget/packages/FindPackagesById()?id=' AutoMapper'
警告:FindPackagesById:AutoMapper
  发送请求时发生错误   获取https://www.nuget.org/api/v2/FindPackagesById()?id=' AutoMapper'
  获取https://www.nuget.org/api/v2/FindPackagesById()?id=' System.Collections.Immutable'
  获取http://packages.nuget.org/v1/FeedService.svc/FindPackagesById()?id=' System.Collections.Immutable'
  获取https://www.postsharp.net/nuget/packages/FindPackagesById()?id=' System.Collections.Immutable'
警告:FindPackagesById:AutoMapper
  发送请求时发生错误   获取https://www.postsharp.net/nuget/packages/FindPackagesById()?id=' AutoMapper'
警告:FindPackagesById:AutoMapper
  响应状态代码不表示成功:407(需要代理验证)。

更新

我设法捕获了一个非工作请求(返回407)和一个工作请求,其中唯一的区别是代理授权标头的内容更长。这表明代理身份验证确实存在,但它使用的是不同的协议。

8 个答案:

答案 0 :(得分:8)

几个星期前我遇到了同样的问题。对我来说,它有助于在machine.config中添加以下内容(Windows / Microsoft.NET / Framework64 / v4.0.30319 / Config)

<system.net>
   <settings>
       <ipv6 enabled="True"/>
   </settings>
   <defaultProxy useDefaultCredentials="True" enabled="True">
       <proxy proxyaddress="http://your.proxyserver.ip:port"/>
   </defaultProxy>
</system.net>

答案 1 :(得分:7)

我必须修改 32位 machine.config(假设VS以32位运行)添加<system.net>部分,但省略<defaultProxy>标记内的任何内容:

<system.net>
    <defaultProxy useDefaultCredentials="True" enabled="True" />
</system.net>

根据MSDN

  

如果defaultProxy元素为空,则将使用Internet Explorer中的代理设置。

这对我来说非常完美,因为我机器上的其他所有应用程序都可以运行 - 包括IE。

manchine.config位置(Win 7):%SYSTEMROOT%\ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ machine.config

注意

我解决了这个问题,感谢@ user3063127指向我正确的方向(你有一个upvote)。据我所知,这只会影响DNX项目的包恢复,并且可能在RC2发布后修复。

答案 2 :(得分:3)

  1. 已更新至最新的nuget.exe 1st

    nuget update self
    
  2. 在配置文件中添加了代理详细信息:

    nuget config -Set http_proxy=http://username:password@proxyserver.company.com:port
    

答案 3 :(得分:1)

如果您安装了Fiddler,请选中&#39;自动验证&#39;根据规则选项,应解决上述问题。

Selecting the Automatically Authenticate

从以下帖子得到这个 Configuring Fiddler to use company network's proxy?

答案 4 :(得分:0)

如果您不知道代理服务器详细信息,可以使用其他解决方法来克服此错误“407(需要代理授权。)”

解决方法: 1.下载/安装Fiddler 2.单击菜单规则 - &gt;自动验证

在没有关闭Fiddler的情况下,现在尝试在Visual Studio中执行还原包。它现在应该在没有任何代理错误的情况下恢复包。

这不是一个简洁的解决方案,但仍然是解决此问题的替代解决方法。此解决方案尝试将Fiddler用作代理。

答案 5 :(得分:0)

您需要修改文件2 .config文件:

对于Visual Studio 2015

  • C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\vsn.exe.config
  • C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe.config

对于Visual Studio 2017

  • C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\vsn.exe.config
  • C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe.config
<system.net>
  <defaultProxy enabled="true" useDefaultCredentials="true">
    <proxy usesystemdefault="True" bypassonlocal="True" proxyaddress="http://yourproxy:proxyport" />
    <bypasslist>
      <add address="(.*\.)?anyotherdomain\.com?(.*)" />
      <add address="(.*\.)?nuget\.org?(.*)" />
      <add address="192\.168\.\d{1,3}\.\d{1,3}" />
    </bypasslist>
  </defaultProxy>
  <settings>
    <ipv6 enabled="false"/>
    <servicePointManager expect100Continue="false"/>
  </settings>
</system.net>

如果没有代理,您仍然可以从DNS服务器获取其IP,而没有其他阻止它,则nuget.org的旁路将起作用。

还需要安装nuget

打开文件C:\Users\[YOUR_USER_NAME]\AppData\Roaming\NuGet\NuGet.Config,然后在<configuration> <\configuration>标签内添加以下内容:

<config>
  <add key="http_proxy" value="http://yourproxy:proxyport" />
</config>

取自Marco Mengoli's Blog

答案 6 :(得分:0)

也许您在凭据管理器中使用了错误的代理凭据。尝试将其删除。

控制面板->用户帐户->凭据管理器。

删除代理凭据解决了我的问题。

答案 7 :(得分:0)

添加代理用户名和密码解决了我的407身份验证问题。

将以下代码段放在位于C:\ Users \ myUserName \ AppData \ Roaming的NuGet.config文件中

ResultNL

参考:https://forums.asp.net/t/2096179.aspx?Proxy+407+Access+Denied