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

问题描述 投票:8回答:8

我知道这是一个经常被问到的问题,但是经过几天的研究,我找不到这个特定问题的答案。


我有一个新的ASP.NET 5(Core 1.0)MVC模板,我试图添加一个包,但每次我进入包管理器输出:

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


包管理器输出的顶部:

安装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 GET https://www.nuget.org/api/v2/ GET http://packages.nuget.org/v1/FeedService.svc/ GET 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(需要代理验证)。

Update

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

visual-studio visual-studio-2015 nuget package-managers nugetgallery
8个回答
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>

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发布时修复。


3
投票
  1. 已更新至最新的nuget.exe 1st nuget update self
  2. 在配置文件中添加了代理详细信息: nuget config -Set http_proxy=http://username:[email protected]:port

1
投票

如果您安装了Fiddler,请勾选“规则”选项下的“自动验证”选项,以解决上述问题。

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


1
投票

您需要修改文件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>

nuget.org的旁路将起作用,如果没有代理,你仍然可以从DNS服务器获取它的IP,没有别的东西阻止它。

还需要这个来安装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


0
投票

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

解决方法:1。下载/安装Fiddler 2.单击“菜单规则” - >“自动验证”

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

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


0
投票

也许您在Credential Manager中有错误的代理凭据。尝试删除它。

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

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


0
投票

添加代理用户名,密码修复了我的407认证问题。

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

<configuration>

   <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="[base64 encoded Password]" />
   </config>

</configuration>

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

© www.soinside.com 2019 - 2024. All rights reserved.