Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo consente di risolvere un problema a causa del quale si è verificato un errore (La connessione sottostante è stata chiusa: impossibile risolvere il nome remoto) quando si usa un client .NET per utilizzare un servizio Web tramite un server proxy HTTP.
Versione originale del prodotto: .NET Framework
Numero KB originale: 318140
Sintomi
Quando si usa un client .NET per utilizzare un servizio Web tramite un server proxy HTTP, è possibile che venga visualizzato il messaggio di errore seguente:
La connessione sottostante è stata chiusa: non è stato possibile risolvere il nome remoto.
Motivo
Esiste un server proxy HTTP tra il servizio Web e il client .NET e le impostazioni proxy appropriate non sono state configurate.
Risoluzione
Per risolvere questo problema, specificare le impostazioni di configurazione del proxy appropriate al client .NET.
Di seguito sono riportate le impostazioni predefinite nel file Machine.config :
<configuration>
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "true"
/>
</defaultProxy>
</system.net>
</configuration>
Se le impostazioni predefinite non rilevano automaticamente le impostazioni del server proxy, impostate su usessystemdefault
false e quindi designano in modo esplicito il server proxy. Per designare il server proxy in modo esplicito, usare il file Machine.config o Web.config oppure specificare il server a livello di codice.
Per specificare il server proxy, impostare le impostazioni del file Machine.config o Web.config come indicato di seguito:
<configuration>
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "false"
proxyaddress="http://proxyserver"
bypassonlocal="true"
/>
</defaultProxy>
</system.net>
</configuration>
Per modificare le impostazioni a livello di codice usando un WebProxy
oggetto , usare il codice di esempio seguente:
using System.Net;
com.someserver.somewebservice.someclass MyWebServiceClass = new com.someserver.somewebservice.someclass ();
IWebProxy proxyObject = new WebProxy ("http://myproxyserver:80", true);
MyWebServiceClass.Proxy = proxyObject;
MyWebServiceClass.MyWebMethod ();
Server proxy che richiedono l'autenticazione NTLM
Per impostare l'autenticazione NT LAN Manager (NTLM) per il server proxy, usare il codice di esempio seguente:
using System.Net;
WebProxy myProxy = new WebProxy ("http://proxyserver:port", true);
myProxy.Credentials = CredentialCache.DefaultCredentials;
FindServiceSoap myFindService = new FindServiceSoap ();
myFindService.Proxy = myProxy;
È anche possibile usare il proxy a livello di sistema come impostazione predefinita. A tale scopo, usare le impostazioni seguenti nel file di configurazione:
<configuration>
<system.net>
<defaultProxy>
<proxy
proxyaddress = "http://proxyserver:80"
bypassonlocal = "true"
/>
</defaultProxy>
</system.net>
</configuration>