Доступ к официальному пакету Nuget Source за прокси-сервером компании

Я пытаюсь использовать Nuget в VS2010 на работе. Когда я пытаюсь загрузить пакеты из официального канала, он всегда терпит неудачу с 403.

Я читал, что Nuget будет использовать те же настройки прокси-сервера, что и IE, что для меня несчастливо, поскольку мой IE заблокирован. Я не могу изменить прокси.

Я искал URL-адреса feedservice, которые отскакивают, в IE я получаю сообщение об ошибке, в Firefox (с локальным определением proxy.pac) URL-адреса обрабатываются нормально, и я могу видеть каналы.

Есть ли способ вручную настроить Nuget, чтобы не использовать настройки IE?

Ответы

Ответ 1

Если вы не можете получить исключение, добавленное в ваш прокси, или просто хотите немедленное решение, отредактируйте конфигурационный файл Visual Studio (devenv.exe.config), расположенный в установочном каталоге Visual Studio (например, - C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE). и измените/добавьте раздел конфигурации <system.net> в следующее, что позволит Visual Studio работать с прокси:

<system.net>
    <defaultProxy useDefaultCredentials="true" enabled="true">
        <proxy proxyaddress="http://<Insert proxy address here>" />
    </defaultProxy>
    <settings>
        <servicePointManager expect100Continue="false" />
        <ipv6 enabled="true" />
    </settings>
</system.net>

Все, что вам нужно сделать, это изменить <Insert proxy address here > на адрес прокси-сервера вашей компании. Кроме того, в зависимости от настроек прокси-сервера вы можете использовать сообщения Expect100Continue и, возможно, не потребуется изменять этот элемент конфигурации. Вы можете найти более подробную информацию здесь

Ответ 2

Ниже приводится связанный с этим вопрос, который я вчера ответил.

Вот что я сделал, чтобы это работало с моим корпоративным прокси, использующим аутентификацию NTLM. Я загрузил NuGet.exe из ссылки на эту страницу, а затем выполнил следующие команды (которые я нашел в комментарии к это обсуждение на CodePlex):

nuget.exe config -set http_proxy=http://my.proxy.address:port
nuget.exe config -set http_proxy.user=mydomain\myUserName
nuget.exe config -set http_proxy.password=mySuperSecretPassword

Вставьте это в мой NuGet.config, расположенный в %appdata%\NuGet (который сопоставляется с C:\Users\myUserName\AppData\Roaming на моей машине с Windows 7):

<configuration>
    <!-- stuff -->
    <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="base64encodedHopefullyEncryptedPassword" />
    </config>
    <!-- stuff -->
</configuration>

Кстати, это также устранило мою проблему с NuGet, только работая в первый раз, когда я попал в источник пакета в Visual Studio.

Обратите внимание, что некоторые люди, которые пробовали этот подход, сообщили через комментарии к моему другому ответу, что они смогли опустить установку ключа http_proxy.password из командной строки или удалить его после факта из файла конфигурации и все еще могут иметь функцию NuGet через прокси.

Если вы обнаружите, что вы должны указать свой пароль в конфигурационном файле NuGet, помните, что вам необходимо обновить сохраненный пароль в конфигурации NuGet из командной строки при изменении входа в сеть, если ваш прокси-учетные данные также являются вашими учетными данными сети.

Ответ 3

Ну, мне удалось заставить ИТ-отдел разрешить неограниченный доступ к packages.nuget.org, чтобы он разобрался. Мы используем здесь софту, и любой веб-запрос ему не нравится, когда внешний вид заблокирован. Это применимо к URL-адресам nuget. Обходной путь состоял в том, чтобы использовать диспетчер пакетов библиотек для запуска установки с запуском скрипача. Затем скопируйте URL-адрес, который был запрещен в моем браузере, и скажите, что у него все в порядке. Я мог бы успешно установить пакет

надеюсь, что это поможет кому-то застрять за боевым брандмауэром.

Ответ 4

Если вы не знаете настройки прокси-сервера, и NuGet запрашивает прокси-пользователя и пароль, вы можете попробовать добавить в devenv.exe.config файл в установочном каталоге Visual Studio, между тегами <system.net>:

<defaultProxy useDefaultCredentials="true" enabled="true">
  <proxy usesystemdefault="True"/>
</defaultProxy>

он должен выглядеть так, в зависимости от вашего VisualStudio:

  <system.net>
    <defaultProxy useDefaultCredentials="true" enabled="true">
      <proxy usesystemdefault="True"/>
    </defaultProxy>
    <settings>
      <ipv6 enabled="true" />
    </settings>
  </system.net>

Это сработало для меня, даже не указав адрес прокси-сервера:) На самом деле это должно быть поведение по умолчанию, я потерял столько дней, пытаясь преодолеть это...

Ответ 5

У меня возникла проблема с доступом к сайту Nuget через консоль Nuget. "Получил неожиданный EOF или 0 байтов из транспортного потока".. В итоге это была проблема с прокси-сервером, разница в том, что мой рабочий прокси "невидим" и не имеет параметров конфигурации. Я решил проблему со следующими шагами.

  • Открыть Visual Studio в качестве администратора
  • Откройте внутренний браузер Visual Studio (View | Other Windows | Web Browser)
  • Перейдите на ваш сайт в банках - или на другом сайте, использующем SSL
    Возможно, вам нужно войти на сайт, я этого не сделал.
  • Затем запустите команду Install-package в консоли Nuget.
  • Команда работает без ошибок.

Это может помочь в следующих проблемах:

Надеюсь, это поможет.