我知道这是一个经常被问到的问题,但是经过几天的研究,我找不到这个特定问题的答案。
我有一个新的ASP.NET 5(Core 1.0)MVC模板,我试图添加一个包,但每次我进入包管理器输出:
Response status code does not indicate success: 407 (Proxy Authentication Required).
以及解决方案资源管理器顶部的以下内容:
我的设置看起来很好,我可以在“管理解决方案包”屏幕中浏览包。
我知道我被要求提供凭证,所以我在哪里输入?另一方面,我机器上的所有其他应用程序都验证了互联网访问,那么我为什么要这样做呢?
任何想法/指针都非常受欢迎。
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(需要代理验证)。
我设法捕获一个非工作请求(返回407)和一个工作请求,唯一的区别是代理授权标头的内容更长。这表明代理身份验证确实存在,但它使用的是不同的协议。
几个星期前我遇到了同样的问题。对我来说,它有助于在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>
我不得不修改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发布时修复。
nuget update self
nuget config -Set http_proxy=http://username:[email protected]:port
如果您安装了Fiddler,请勾选“规则”选项下的“自动验证”选项,以解决上述问题。
Selecting the Automatically Authenticate 从以下帖子Configuring Fiddler to use company network's proxy?得到这个
您需要修改文件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>
如果您不知道代理服务器详细信息,可以使用其他解决方法来克服此错误“407(需要代理授权。)”
解决方法:1。下载/安装Fiddler 2.单击“菜单规则” - >“自动验证”
在没有关闭Fiddler的情况下,现在尝试在Visual Studio中执行还原包。它现在应该恢复包没有任何代理错误。
这不是一个简洁的解决方案,但仍然是解决此问题的替代解决方法。此解决方案尝试将Fiddler用作代理。
也许您在Credential Manager中有错误的代理凭据。尝试删除它。
控制面板 - >用户帐户 - >凭据管理器。
删除代理凭据解决了我的问题。
添加代理用户名,密码修复了我的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