CORRECÇÃO: Mensagem de erro intermitentes "conexão subjacente estava fechada" ao chamar um serviço da Web do ASP.NET

Traduções deste artigo Traduções deste artigo
ID do artigo: 819450 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sintomas

Quando você liga para um serviço da Web Microsoft ASP.NET de um ASP.NET aplicativo, você intermitentemente pode receber a seguinte mensagem de erro:
A conexão subjacente foi fechada: Ocorreu um erro inesperado em um envio.
A pilha de chamada é semelhante à seguinte:
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send.
 At System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request) at 
System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request) at 
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at 
...

Resolução

Um hotfix com suporte foi disponibilizada pela Microsoft. No entanto, destina-se a corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Esta correcção poderá submetida a testes adicionais. Portanto, se você não tiver sido gravemente afetado por esse problema, recomendamos que você aguarde o próximo service pack do Microsoft .NET Framework que contém esse hotfix.

Para resolver esse problema imediatamente, contate o Microsoft Customer Atendimento para obter o hotfix. Para obter uma lista completa de telefones do serviço de suporte a clientes da Microsoft e informações sobre os custos de suporte, visite o seguinte site:
http://support.microsoft.com/contactus/?ws=support
Observação Em alguns casos, as taxas cobradas pelas ligações para chamadas de suporte podem ser canceladas se um profissional de suporte da Microsoft determinar que uma atualização específica resolverá o problema. Os custos normais de suporte serão aplicados a questões e problemas que não se qualificam à atualização específica em questão de suporte adicionais.

A versão em inglês deste hotfix tem atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas no horário de universal coordenado (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário no item Data e hora no painel de controle.
   Date         Time   Version       Size       File name                    Platform
   ----------------------------------------------------------------------------------
   01-May-2003  12:48  1.0.3705.426     20,480  Perfcounter.dll              X86
   01-May-2003  12:48  1.0.3705.426  1,175,552  System.dll                   X86
   01-May-2003  12:48  1.0.3705.426    311,296  System.runtime.remoting.dll  X86
   01-May-2003  12:48  1.0.3705.426    503,808  System.web.services.dll      X86	
Esse hotfix está incluído no .NET Framework 1.0 Service Pack 3 e no .NET Framework 1.1 Service Pack 1.

Para obter mais informações sobre como obter o service pack mais recente do .NET Framework 1.0, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
318836Como obter o service pack mais recente do .NET Framework 1.0

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais Informações

A mensagem de erro mencionada na seção "Sintomas" também pode ocorrer por motivos válidos. Por exemplo, a conexão subjacente pode ter sido fechada por motivos que estão além do controle do cliente. Em tais circunstâncias, o Microsoft .NET Framework está se comportando corretamente.

Por exemplo, se os serviços Web são chamados forem hospedados em um software ou em um ambiente de hardware com balanceamento de carga que contém servidores que oferecem suporte a conexões keep-alive de HTTP 1.1 e, a conexão pode ter encerrado pelo tempo que o cliente tenta reutilizar a conexão. Se este erro ainda ocorrer depois de aplicar esta correção, tente as seguintes soluções:
  • Configure o site que hospeda os serviços da Web para não usar conexões keep-alive. Para fazer isso, execute as seguintes etapas:
    1. Abra o console de gerenciamento do Microsoft Internet Information Server (IIS) e localize o servidor Web.
    2. Clique na guia Site da página Propriedades para o site da Web.
    3. Clique para limpar o KEEP-Alives de HTTP ativado caixa de seleção.
  • Verifique se que o balanceamento de carga de hardware ou software está configurado para seus requisitos de aplicativo corretamente.
  • Se você não tiver controle sobre o ambiente do servidor que hospeda os serviços da Web que você está chamando, talvez seja necessário desabilitar conexões keep-alive no lado do cliente. Para fazer isso, execute as seguintes etapas:
    1. Defina a propriedade KeepAlive da classe HttpWebRequest como false .
    2. Substitua o método HttpWebRequest no arquivo Reference.cs que é gerado pelo Microsoft Visual Studio .NET para o proxy de cliente da Web. O código a seguir substitui o método HttpWebRequest .
      protected override WebRequest GetWebRequest(Uri uri)
       {
       HttpWebRequest webRequest = (HttpWebRequest) base.GetWebRequest(uri);
       
       webRequest.KeepAlive = false;
       
       return webRequest;
       }
      

Referências

Para obter mais informações sobre como obter o .NET Framework 1.1 Service Pack 1, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
885055Como obter o Microsoft .NET Framework 1.1 Service Pack 1

Propriedades

ID do artigo: 819450 - Última revisão: terça-feira, 6 de novembro de 2007 - Revisão: 2.9
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.0 Service Pack 1
  • Microsoft .NET Framework 1.0 Service Pack 2
  • Microsoft .NET Framework 1.1
Palavras-chave: 
kbmt kbhotfixserver kbqfe kbnetframe100presp3fix kbfix kbbug KB819450 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 819450

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com