12

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


我有一个新的 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 - 3.3.0.167
的 NuGet 包管理器


包管理器输出的顶部:

安装 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文件 (x86)\Microsoft Web Tools\DNU"
Microsoft .NET 开发实用程序 Clr-x86-1.0。
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
GET https://www.nuget.org/api/v2/FindPackagesById()?id='AutoMapper '
GET http://packages.nuget .org/v1/FeedService.svc/FindPackagesById()?id= 'AutoMapper'
GET 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 '
GET http://packages.nuget.org/v1/FeedService.svc/FindPackagesById()?id= 'System.Collections.Immutable'
GET 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)和一个工作请求,唯一的区别是 Proxy-Authorization 标头的内容更长。这表明代理身份验证确实存在,但它使用不同的协议。

4

8 回答 8

11

几周前我遇到了同样的问题。对我来说,它有助于在 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>
于 2016-04-03T18:35:47.100 回答
8

我不得不修改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 为我指出了正确的方向(你有一个赞成票),我解决了这个问题。据我所知,这只会影响 DNX 项目的包还原,并且很可能会在 RC2 发布时得到修复。

于 2016-04-04T13:52:51.063 回答
4

您需要修改文件 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,并且没有其他任何东西阻止它,那么绕过 for将起作用。

也需要这个来安装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 的博客

于 2018-12-06T18:30:34.033 回答
4
  1. 更新到最新的 nuget.exe 1st

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

    nuget config -Set http_proxy=http://username:password@proxyserver.company.com:port
    
于 2016-11-16T17:47:12.247 回答
2

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

选择自动身份验证

从以下帖子 配置 Fiddler 以使用公司网络的代理?

于 2016-08-08T09:13:03.080 回答
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

于 2019-06-11T10:03:15.733 回答
0

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

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

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

于 2019-03-05T13:03:03.097 回答
0

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

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

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

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

于 2017-01-17T00:58:31.507 回答