Диспетчер пакетов в Visual Studio 2015 "407 (требуется проверка подлинности прокси-сервера)"

Я понимаю, что это часто задаваемый вопрос, однако после нескольких дней исследований я не нашел ответа на эту конкретную проблему.


У меня есть новый шаблон MVC ASP.NET 5 (Core 1.0), к которому я пытаюсь добавить пакет, однако каждый раз, когда я получаю в выводе диспетчера пакетов:

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

и следующее в верхней части обозревателя решений:

мои настройки выглядят нормально, и я могу просматривать пакеты на экране "Управление пакетами для решения".

Я понимаю, что меня просят предоставить учетные данные, и куда мне их вводить? С другой стороны, все другие приложения на моей машине имеют проверенный доступ к Интернету, так почему я должен?

Любые идеи / указатели очень приветствуются.

Visual Studio 2015 - обновление 14.0.24720.00 1
Диспетчер пакетов NuGet для Visual Studio 2015 - 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\ Внешние; C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Extensions \ Microsoft \ Веб-инструменты \ Внешние \ 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/
GET 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'
GET 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) и рабочий запрос, с единственным отличием, которое заключается в содержании заголовка Proxy-Authorization, который длиннее. Это предполагает, что аутентификация прокси существует, но использует другой протокол.

5 ответов

Решение

Мне пришлось изменить 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.

У меня была такая же проблема несколько недель назад. Для меня это помогло вставить следующее в 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. Обновлено до последней версии nuget.exe 1-й

    nuget update self
    
  2. Добавлены данные прокси в файл конфигурации:

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

Вам необходимо изменить файлы.config файла 2:

для 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 будет работать, если без прокси вы все еще можете получить его IP с DNS-сервера, и ничто другое не блокирует его.

Также нужно это установить nuget

Открыть файл C:\Users\[YOUR_USER_NAME]\AppData\Roaming\NuGet\NuGet.Config и добавить внутрь <configuration> <\configuration> пометьте следующее:

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

Взято из блога Марко Менголи

Если у вас установлен Fiddler, отметьте опцию "Автоматически проверять подлинность" в разделе "Правила", чтобы устранить вышеуказанную проблему.

Выбор автоматической аутентификации

Получил это из следующего поста Настройка Fiddler для использования прокси сети компании?

Если вы не знаете подробностей прокси-сервера, вы можете использовать другой обходной путь для устранения этой ошибки "407 (Требуется авторизация прокси-сервера)."

Обходной путь: 1. Загрузите / установите Fiddler 2. Нажмите Правила меню -> Автоматическая аутентификация

Не закрывая Fiddler, теперь попробуйте сделать восстановление пакета в Visual Studio. Теперь он должен восстановить пакеты без каких-либо ошибок прокси.

Это не изящное решение, а альтернативный обходной путь для решения этой проблемы. Это решение пытается использовать Fiddler в качестве прокси.

Добавление прокси-имени пользователя и пароля устранило мою проблему с аутентификацией 407.

Поместите следующий фрагмент в файл NuGet.config, расположенный в C:\Users\myUserName\AppData\Roaming

<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

Возможно, у вас неправильные учетные данные прокси в Диспетчере учетных данных. Попробуйте удалить это.

Панель управления -> Учетная запись пользователя -> Диспетчер учетных данных.

Удаление учетных данных прокси решило мою проблему.

Другие вопросы по тегам