Configurare l'uso del proxy PAC in un applicazione .NET
Effettuando una chiamata tramite l'oggetto WebClient tipo la seguente:
può capitare di avere questo errore:
Nel mio caso il proxy era configurato per usare il file Proxy PAC. Questo è configurato a livello di utente, in Internet Explorer, tramite le Opzioni internet:
E' possibile configurare l'applicazione per fare in modo che qualunque chiamata effettuata usi il proxy, questo senza dover modificare il codice.
Questo si ottiene configurando opportunamente il web.config nella sezione /configuration/system.net/defaultProxy/proxy:
impostando il parametro scriptLocation e usesystemdefault.
C#
BO.Response result = null;
System.Collections.Specialized.NameValueCollection data = new System.Collections.Specialized.NameValueCollection();
data.Add("secret", secret);
using (System.Net.WebClient wc = new System.Net.WebClient())
{
byte[] b = wc.UploadValues(url, data);
string s = System.Text.Encoding.UTF8.GetString(b);
result = Newtonsoft.Json.JsonConvert.DeserializeObject<BO.Response>(s);
}
Unable to connect to the remote server
Impossibile stabilire la connessione. Risposta non corretta della parte connessa dopo l'intervallo di tempo oppure mancata risposta dall'host collegato nnn.nnn.nnn.nnn:443
l'errore compare perchè la chiamata non riesce a passare dal Proxy.Impossibile stabilire la connessione. Risposta non corretta della parte connessa dopo l'intervallo di tempo oppure mancata risposta dall'host collegato nnn.nnn.nnn.nnn:443
Nel mio caso il proxy era configurato per usare il file Proxy PAC. Questo è configurato a livello di utente, in Internet Explorer, tramite le Opzioni internet:
E' possibile configurare l'applicazione per fare in modo che qualunque chiamata effettuata usi il proxy, questo senza dover modificare il codice.
Questo si ottiene configurando opportunamente il web.config nella sezione /configuration/system.net/defaultProxy/proxy:
XML
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.net>
<defaultProxy>
<proxy scriptLocation="http://proxy.sgart.local:8080/wpad.dat" usesystemdefault="True" />
</defaultProxy>
</system.net>
</configuration>