2011-10-10 20 views
14

Estoy tratando de usar Nuget en VS2010 en el trabajo. Cuando intento descargar paquetes del feed oficial siempre falla con un 403.Acceso al paquete oficial de Nuget Fuente detrás del proxy de la compañía

He leído que Nuget utilizará la misma configuración de proxy que IE, lo cual es desafortunado para mí ya que mi IE está bloqueado. No puedo cambiar el proxy.

He alterado las URL de servicio de feeds que se están recuperando, en IE obtengo un error, en Firefox (con un proxy.pac local definido) las direcciones URL se resuelven bien y puedo ver las fuentes.

¿Hay alguna forma de configurar manualmente Nuget para no usar la configuración de IE?

Respuesta

21

Si usted no puede conseguir la excepción añadido a su apoderado, o simplemente quiere una solución inmediata y modifique el archivo de configuración de Visual Studio (Devenv.exe.config), ubicado en el directorio de instalación de Visual Studio (por ejemplo - C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE) y el cambio/añaden la sección de configuración <system.net> a la siguiente, que le permitirá el trabajo de Visual Studio con el proxy:

<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> 

Todo lo lo que hay que hacer es cambiar el <Insert proxy address here> a la dirección proxy de su empresa. Además, dependiendo de la configuración de su proxy, puede usar los mensajes Expect100Continue y es posible que no necesite cambiar ese elemento de configuración. Puede encontrar más información here

+4

Solo para agregar a eso, el archivo .config puede necesitar ser editado como Administrador ya que el directorio Archivos de programa está más protegido de lo que solía ser. –

+0

¿Hay un archivo de configuración similar para TFS en un servidor de compilación sin VS instalado? Puedo ver que esto se convierte en un problema para mí más tarde ... –

2

Bueno logré que el departamento de TI permitiera el acceso irrestricto a packages.nuget.org, así que lo resolvió. Usamos sophos aquí y cualquier solicitud web que no le gusta está bloqueada. Esto se aplica a las nuget urls. Una solución alternativa era usar el Administrador de paquetes de biblioteca para iniciar una instalación con Fiddler ejecutándose. Luego copie la URL que estaba prohibida en mi navegador y diga a Sophos que está bien. Yo podría instalar Paquete éxito

Esperamos que esto ayude a nadie atrapado detrás de un firewall militante

13

Lo siguiente proviene de una pregunta relacionada I answered recientemente.

Esto es lo que hice para que esto funcione con mi proxy corporativo que usa autenticación NTLM. He descargado NuGet.exe desde un enlace en this page y luego encontré los siguientes comandos (que he encontrado en los comentarios a this discussion en 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 

Esto puso lo siguiente en mi NuGet.config situada en %appdata%\NuGet (que los mapas a C: \ Users \ miNombreUsuario \ AppData \ Roaming en mi máquina de 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> 

por cierto, esto también fija mi problema con NuGet trabajar sólo la primera vez que me golpeó el pa fuente de ckage en Visual Studio.

Tenga en cuenta que algunas personas que han intentado este enfoque han informado through the comments on my other answer que han podido omitir establecer la clave http_proxy.password desde la línea de comandos o eliminarlo después de los hechos desde el archivo de configuración, y eran todavía puede tener la función NuGet en todo el proxy.

Si encuentra, sin embargo, que necesidad especificar la contraseña en el archivo de configuración NuGet, recordar que tiene que actualizar la contraseña almacenada en la configuración NuGet desde la línea de comandos cuando se cambia la red inicie sesión, si sus credenciales de proxy también son sus credenciales de red.

+1

Snif ... no funciona para un 407. No está aquí, en cualquier caso. – Benjol

+0

@Benjol Con el fin de evitar los errores 407 detrás de nuestro proxy en mi oficina, esto funcionó. Lamento que no funcionó para ti. Tal vez podrías intentar jugar con las diversas configuraciones de http_proxy desde la línea de comandos de NuGet y ver si tienes algo de suerte. – arcain

+0

Debo añadir que esto fue específicamente para el caso en que Nuget 'descarga automáticamente' el archivo nuget.exe en la carpeta .nuget. Cuando la acción es 'iniciada por el usuario', el proxy aparentemente sabe que es 'yo', por lo que funciona. Desde entonces [he abandonado] (http://stackoverflow.com/a/20660920) la carpeta .nuget de todos modos. – Benjol

0

Tuve un problema al acceder al sitio de Nuget a través de Nuget Console. "Recibió un EOF inesperado o 0 bytes de la secuencia de transporte". Terminó siendo un problema de proxy, la diferencia era que mi proxy de trabajo es 'invisible' y no tiene opciones de configuración. Resolví mi problema con los siguientes pasos.

  1. Abra Visual Studio como administrador
  2. Abra el navegador interno de Visual Studio (Ver | Otras ventanas | Navegador web)
  3. Ir a su sitio web bancos - o cualquier otro sitio que utiliza SSL
    que tenga que realmente inicie sesión en el sitio, no lo hice.
  4. A continuación, ejecute el comando Install-package en Nuget Console.
  5. El comando funciona sin error.

Esto puede ayudar con las siguientes cuestiones:

espero que esto ayude.

2

Si no conoce la configuración del proxy y NuGet pide un usuario y contraseña del proxy, podría intentar añadir a devenv.exe.config archivo en el directorio de instalación de Visual Studio, entre las <system.net> etiquetas:

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

que debería tener este aspecto, dependiendo de su VisualStudio:

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

funcionó para mí sin siquiera dar la dirección proxy :) Realmente esto debe ser el comportamiento por defecto, he perdido tantos días tratando para superar esto ...

Cuestiones relacionadas