CORRECÇÃO: Uma aplicação que se baseia no Microsoft .NET Framework 2.0 Service Pack 2 e que invoca uma chamada de serviço Web assincronamente inicia uma excepção num computador que está a executar o Windows 7

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

Nesta página

Sintomas

Num computador que esteja a executar o Windows 7, detecta um ou mais dos seguintes sintomas.

Sintoma 1

Considere o seguinte cenário:
  • Executa um serviço Web assíncrono que utiliza o Microsoft .NET Framework 2.0 Service Pack 2 (SP2) num servidor.
  • A operação assíncrona HttpWebRequest envia um pedido Web ao serviço Web.
  • O serviço Web lança uma excepção.
Neste cenário, a operação assíncrona HttpWebRequest não chama o método BeginGetResponse ou a função de chamada de retorno. No entanto, a operação assíncrona HttpWebRequest inesperadamente é concluída. O serviço da Web, em seguida, deixa de responder. Além disso, a utilização da CPU no servidor pode aumentar a 100 por cento e, em seguida, o servidor deixa de responder.

Sintoma 2

Considere o seguinte cenário:
  • Executa uma aplicação baseada no .NET Framework 2.0 SP2 que chama um serviço Web utilizando os componentes de cliente do serviço Microsoft ASP.NET Web Microsoft. Por exemplo, o código da aplicação é gerado pelo processo Wsdl.exe ou a aplicação chamar a classe SoapHttpClientProtocol.
  • O cliente invoca a chamada de serviço Web assincronamente.
  • O cliente envia um pedido para um servidor.
  • O cliente, em seguida, recebe uma resposta de Web com conteúdo de comprimento zero.
Quando o serviço da Web tenta processar esta resposta neste cenário, é accionada uma excepção System.ArgumentNullException. Em seguida, recebe a seguinte mensagem de erro:
O valor não pode ser nulo.
Nota Este problema não ocorre quando o cliente invoca a chamada de serviço Web síncrona.

Causa

Sintoma 1

Este problema ocorre porque o processamento de excepções de .NET Framework não considera o caso em que o método HttpWebRequest.EndGetRequestStream inicia uma excepção quando essa excepção contém uma resposta do servidor.

Resolução

Informações sobre a correcção

Tem já disponível na Microsoft uma correcção suportada. Contudo, destina-se a corrigir o problema descrito neste artigo. Aplique-a apenas em sistemas que tenham este problema específico. Para resolver este problema, contacte o suporte técnico da Microsoft para obter a correcção. Para obter uma lista completa dos números de telefone do 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 perguntas de suporte adicionais e problemas que não se enquadrem na atualização específica em questão.

Nota Também pode transferir este conjunto de correcções a partir do seguinte site da Microsoft na Web de ligação:
http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=27977

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

Para obter mais informações sobre os problemas descritos na secção "Sintomas 1", clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
973134CORRECÇÃO: O serviço Web deixa de responder e é emitida uma excepção quando executa um serviço Web baseado no .NET Framework 2.0 S assíncrono
Para obter mais informações sobre os problemas descritos na secção "Sintomas 2", clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
973136Mensagem de erro de excepção do correcção: ArgumentNullException quando uma aplicação baseada no .NET Framework 2.0 S tenta processar uma resposta com teor de comprimento zero a um pedido assíncrono de serviço Web do ASP.NET: "Valor não pode ser nulo"

Propriedades

Artigo: 977020 - Última revisão: 21 de abril de 2010 - Revisão: 5.0
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 2.0 Service Pack 2 nas seguintes plataformas
    • Windows 7 Enterprise
    • Windows 7 Enterprise N
    • Windows 7 Professional
    • Windows 7 Professional N
    • Windows 7 Ultimate
    • Windows 7 Ultimate N
Palavras-chave: 
kbmt kbfix kberrmsg kbbug kbexpertiseinter kbsurveynew kbpubtypekc kbqfe kbhotfixserver KB977020 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: 977020

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