CORRECÇÃO: Mensagem de erro intermitentes "subjacentes a ligação foi fechada" quando contactar um serviço Web do ASP.NET

Traduções de Artigos Traduções de Artigos
Artigo: 819450 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sintomas

Quando chama um serviço de Microsoft ASP.NET Web a partir de um ASP.NET aplicação intermitentemente que poderá receber a seguinte mensagem de erro:
A ligação subjacente foi fechada: Ocorreu um erro inesperado num envio.
A pilha de chamadas é 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

Uma correcção suportada está agora disponível da Microsoft. Contudo, destina-se a corrigir o problema descrito neste artigo. Aplique-a apenas em sistemas que tenham este problema específico. Esta correcção poderá submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pelo próximo service pack do Microsoft .NET Framework que contenha esta correcção.

Para resolver este problema imediatamente, contacte o suporte técnico da Microsoft para obter a correcção. Para obter uma lista completa dos números de telefone de suporte técnico da Microsoft e informações sobre os custos de suporte, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Nota Em casos especiais, os custos normalmente inerentes às chamadas de suporte poderão ser anulados, se um técnico de suporte da Microsoft determinar que uma actualização específica resolverá o problema. Os custos normais do suporte serão aplicados a problemas adicionais e questões de suporte que não se enquadrem na atualização específica em questão.

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas na hora universal coordenada (UTC). Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário no item data e hora no painel de controlo.
   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	
Esta correcção está incluída 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 .NET Framework 1.0 service pack mais recente, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
318836Como obter o .NET Framework 1.0 service pack mais recente

Ponto Da Situação

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

Mais Informação

A mensagem de erro mencionada na secção "Sintomas" também pode ocorrer por motivos válidos. Por exemplo, a ligação subjacente poderá foram fechada por motivos que estejam para além do controlo do cliente. Em tais casos, o Microsoft .NET Framework estiver a funcionar correctamente.

Por exemplo, se os serviços Web que são chamados hospedados num software ou num hardware com balanceamento de carga ambiente que contém servidores que suportem ligações keep-alive de HTTP 1.1 e, a ligação pode ter terminado a altura em que o cliente tenta reutilizar a ligação. Se este erro persistir depois de aplicar esta correcção, experimente as seguintes soluções:
  • Configure o Web site que aloja os serviços Web para não utilizar ligações keep-alive. Para o fazer, siga estes passos:
    1. Abra a consola de gestão Microsoft Internet Information Server (IIS) e localize o servidor Web.
    2. Clique no separador Web Site da página Propriedades para o Web site.
    3. Clique para desmarcar a Keep-Alives de HTTP activado caixa de verificação.
  • Verifique se o que o balanceamento de carga de hardware ou software está correctamente configurado para os requisitos de aplicação.
  • Se não tiver controlo sobre o ambiente de servidor que hospeda os serviços Web que está a chamar, poderá ter de desactivar as ligações keep-alive do lado do cliente. Para o fazer, siga estes passos:
    1. Defina a propriedade KeepAlive da classe HttpWebRequest como false .
    2. Substitua o método HttpWebRequest no ficheiro Reference.cs gerado pelo Microsoft Visual Studio .NET para o cliente proxy da Web. O seguinte código 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 de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
885055Como obter o Microsoft .NET Framework 1.1 Service Pack 1

Propriedades

Artigo: 819450 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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