2011-10-10 18 views
14

Sto cercando di utilizzare Nuget in VS2010 al lavoro. Quando provo a scaricare pacchetti dal feed ufficiale, fallisce sempre con un 403.Accesso alla fonte ufficiale del pacchetto Nuget dietro il proxy aziendale

Ho letto che Nuget utilizzerà le stesse impostazioni proxy di IE, il che è sfortunato per me dato che il mio IE è bloccato. Non riesco a cambiare il proxy.

Ho manipolato gli URL feedservice che vengono rimbalzati, in IE ottengo un errore, in Firefox (con un proxy.pac locale definito) gli URL si risolvono e posso vedere i feed.

C'è un modo per configurare manualmente Nuget per non utilizzare le impostazioni di IE?

risposta

21

Se non è possibile ottenere l'eccezione aggiunto al tuo proxy, o semplicemente si vuole una soluzione immediata quindi modificare il file di configurazione di Visual Studio (Devenv.exe.config) che si trova nella directory di installazione di Visual Studio (ad esempio - C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE) e cambiare/aggiungono la sezione di configurazione <system.net> al seguente, che vi permetterà di lavoro di Visual Studio con il 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> 

Tutto quello che è necessario modificare <Insert proxy address here in indirizzo proxy della tua azienda. Inoltre, a seconda delle impostazioni del proxy, potresti essere in grado di utilizzare i messaggi Expect100Continue e potrebbe non essere necessario modificare quell'elemento di configurazione. Potete trovare ulteriori informazioni here

+4

Solo per aggiungere a ciò, il file .config potrebbe dover essere modificato come amministratore poiché la directory Programmi è più protetta di quanto non fosse. –

+0

Esiste un file di configurazione simile per TFS su un build server senza VS installato? Posso vedere questo diventare un problema per me più tardi ... –

2

Bene, sono riuscito a far sì che il reparto IT consentisse l'accesso illimitato a packages.nuget.org, in modo da risolverlo. Usiamo sophos qui e qualsiasi richiesta web non gradisce l'aspetto di è bloccato. Questo si applicava agli url di nuget. Una soluzione alternativa era usare il Gestore di pacchetti della libreria per avviare un'installazione con Fiddler in esecuzione. Quindi copia l'url che era vietato nel mio browser e di dire a sophos che va bene. Ho potuto quindi Install-Package con successo

Spero che questo aiuti chiunque bloccato dietro un firewall militante

13

Quanto segue deriva da una domanda relativa I answered recentemente.

Ecco cosa ho fatto per ottenere questo funziona con il mio proxy aziendale che utilizza l'autenticazione NTLM. Ho scaricato NuGet.exe da un link sulla this page e poi corse i seguenti comandi (che ho trovato nei commenti per this discussion su 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 

Questo ha messo il seguente nel mio NuGet.config situato a %appdata%\NuGet (che mappe a C: \ Users \ myUserName \ AppData \ Roaming sulla mia macchina 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> 

per inciso, questo corretti anche il mio problema con NuGet lavorando solo la prima volta che mi ha colpito la pa fonte ckage in Visual Studio.

Nota che alcune persone che hanno provato questo approccio hanno riferito through the comments on my other answer che essi sono stati in grado di omettere l'impostazione della chiave http_proxy.password dalla riga di comando, o eliminarlo dopo-il-fatto dal file di configurazione, ed erano ancora in grado di avere la funzione NuGet attraverso il proxy.

Se si trova, tuttavia, che si must specificare la password nel file di configurazione NuGet, ricordare che è necessario aggiornare la password memorizzata nella configurazione NuGet dalla riga di comando quando si cambia la propria rete login, se le credenziali del proxy sono anche le credenziali di rete.

+1

Snif ... non funziona per un 407. Non qui, in ogni caso. – Benjol

+0

@Benjol Al fine di aggirare gli errori 407 dietro il nostro proxy nel mio ufficio, questo ha fatto il trucco. Mi dispiace che non abbia funzionato per te. Forse potresti provare a giocare con le varie impostazioni http_proxy dalla riga di comando di NuGet e vedere se hai fortuna. – arcain

+0

Dovrei aggiungere che questo era specifico per il caso in cui nuget "auto-download" il file nuget.exe nella cartella .nuget. Quando l'azione è "avviata dall'utente", il proxy a quanto pare sa che è "me", quindi funziona. Da allora [ho abbandonato] (http://stackoverflow.com/a/20660920) la cartella .nuget comunque. – Benjol

0

Ho avuto un problema con l'accesso al sito Nuget tramite la console Nuget. "Ricevuto un EOF imprevisto o 0 byte dal flusso di trasporto." Si è trattato di un problema con il proxy, la differenza era che il mio proxy di lavoro è 'invisibile' e non ha opzioni di configurazione. Ho risolto il mio problema con i seguenti passaggi.

  1. Aprire Visual Studio come amministratore
  2. Aprire il browser interno di Visual Studio (Visualizza | Altre finestre | Browser Web)
  3. Vai al tuo sito web banche - o di altro sito che utilizza SSL
    potrebbe essere necessario in realtà accedi al sito, non l'ho fatto.
  4. Quindi eseguire il comando Install-package in Nuget Console.
  5. Il comando funziona senza errori.

Questo può aiutare con i seguenti problemi:

Spero che questo aiuta.

2

Se non si conoscono le impostazioni del proxy e NuGet chiede un utente proxy e la password, si potrebbe provare l'aggiunta di devenv.exe.config file nella directory di installazione di Visual Studio, tra le <system.net> tag:

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

dovrebbe apparire come questo, a seconda del vostro VisualStudio:

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

ha funzionato per me senza nemmeno dare l'indirizzo proxy :) realtà questo dovrebbe essere il comportamento di default, ho perso tanti giorni cercando per ovviare a questo ...

Problemi correlati