Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo ajuda a resolver um problema em que um erro (A conexão subjacente foi fechada: o nome remoto não pôde ser resolvido) ocorre quando você usa um cliente .NET para consumir um serviço Web por meio de um servidor proxy HTTP.
Versão original do produto: .NET Framework
Número original do KB: 318140
Sintomas
Ao usar um cliente .NET para consumir um serviço Web por meio de um servidor proxy HTTP, você pode receber a seguinte mensagem de erro:
A conexão subjacente foi fechada: o nome remoto não pôde ser resolvido.
Motivo
Existe um servidor proxy HTTP entre o serviço Web e o cliente .NET, e as configurações de proxy adequadas não foram definidas.
Resolução
Para resolver esse problema, forneça as definições de configuração de proxy adequadas para o cliente .NET.
Veja a seguir as configurações padrão no arquivo Machine.config :
<configuration>
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "true"
/>
</defaultProxy>
</system.net>
</configuration>
Se as configurações padrão não detectarem automaticamente as configurações do servidor proxy, defina usessystemdefault
como false e designe explicitamente o servidor proxy. Para designar o servidor proxy explicitamente, use o arquivo Machine.config ou Web.config ou especifique o servidor programaticamente.
Para especificar o servidor proxy, defina as configurações do arquivo Machine.config ou Web.config da seguinte maneira:
<configuration>
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "false"
proxyaddress="http://proxyserver"
bypassonlocal="true"
/>
</defaultProxy>
</system.net>
</configuration>
Para alterar as configurações programaticamente usando um WebProxy
objeto, use o seguinte código de exemplo:
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 ();
Servidores proxy que exigem autenticação NTLM
Para definir a autenticação do Windows NTLM (LAN Manager) para o servidor proxy, use o seguinte código de exemplo:
using System.Net;
WebProxy myProxy = new WebProxy ("http://proxyserver:port", true);
myProxy.Credentials = CredentialCache.DefaultCredentials;
FindServiceSoap myFindService = new FindServiceSoap ();
myFindService.Proxy = myProxy;
Você também pode usar o proxy de todo o sistema como padrão. Para fazer isso, use as seguintes configurações no arquivo de configuração:
<configuration>
<system.net>
<defaultProxy>
<proxy
proxyaddress = "http://proxyserver:80"
bypassonlocal = "true"
/>
</defaultProxy>
</system.net>
</configuration>