CORRECÇÃO: Um serviço WCF com base no .NET Framework 3.0 pode falhar com uma excepção de System.ServiceModel.CommunicationException se o serviço utiliza o enlace netTcpBinding

Sintomas

Executar um serviço baseado no .NET Framework 3.0 WCF Windows Communication Foundation () que utiliza o enlace netTcpBinding Microsoft. Quando ocorre um erro de rede temporárias, o serviço falha devido a uma excepção de System.ServiceModel.CommunicationException. A excepção pode ocorrer devido a tempo de espera ou devido a um problema de recurso de rede subjacente. O rastreio da pilha poderá ser semelhante ao seguinte exemplo:

... .at System.ServiceModel.Channels.SecurityChannelListener'1.DuplexSessionReceiveMessageAndVerifySecurityAsyncResult.BeginTryReceiveItem (TimeSpan tempo de espera, AsyncCallback chamada de retorno, estado do objecto), System.ServiceModel.Channels.SecurityChannelListener'1.ReceiveItemAndVerifySecurityAsyncResult'2.StartInnerReceive (-) no System.ServiceModel.Channels.SecurityChannelListener'1.ReceiveItemAndVerifySecurityAsyncResult'2.Start (-) System.ServiceModel.Channels.SecurityChannelListener'1.DuplexSessionReceiveMessageAndVerifySecurityAsyncResult.ReceiveMessage (estado do objecto) em System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.Invoke2 (-) System.Security.SecurityContext.Run (SecurityContext securityContext, chamada de retorno de ContextCallback, estado do objecto) em System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.Invoke (-) System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.ProcessCallbacks (-) no System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.CompletionCallback (estado do objecto)

Causa

Este problema ocorre porque o método ReceiveMessage no objecto DuplexSessionReceiveMessageAndVerifySecurityAsyncResult não irá interceptar as excepções que são causadas pelo erro e serem transferidas para o thread de utilizador.

Resolução

Informações sobre correção

Existe uma correção suportada pela Microsoft. No entanto, esta correcção destina-se apenas a corrigir o problema descrito neste artigo. Aplique esta correção apenas em sistemas que tenham o problema descrito neste artigo. Esta correcção poderá ser submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afetado por este problema, recomendamos que aguarde pela próxima atualização de software que contenha esta correção. Se a correcção estiver disponível para transferência, existirá uma secção de "Transferência de correcção disponível" na parte superior deste artigo da Base de dados de conhecimento. Se esta secção não for apresentada, contacte o Suporte ao Cliente da Microsoft para obter a correção. Nota Caso ocorram problemas adicionais ou se for necessária a resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos de normais do suporte serão aplicados a questões de suporte adicional e problemas incluídos nesta correção específica. Para uma lista completa dos números de telefone de suporte e serviço de cliente da Microsoft ou para criar um pedido de assistência separado, visite o seguinte site da Microsoft:

http://support.microsoft.com/contactus/?ws=supportNota O formulário "Transferência de correcção disponível" apresenta os idiomas nos quais a correcção está disponível. Se não visualizar o seu idioma, é porque uma correcção não está disponível para esse idioma.

Pré-requisitos

Tem de ter o Microsoft .NET Framework 3.5 Service Pack 1 (SP1) instalado dos seguintes sistemas operativos Windows para aplicar esta correcção:

  • Windows Vista Service Pack 2 (SP2)

  • Windows Server 2008 Service Pack 2 (SP2)

  • Windows 7 Service Pack 1 (SP1)

  • Windows Server 2008 R2 Service Pack 1 (SP1)

Para mais informações sobre como obter um service pack do Windows Vista, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:

935791 Como obter o service pack mais recente do Windows VistaPara mais informações sobre como obter um Windows Server 2008 service pack, clique no número de artigo seguinte para visualizar o artigo na Base de Dados de Conhecimento Microsoft:

968849 Como obter o service pack mais recente para o Windows Server 2008  Para mais informações sobre como obter o Service Pack 1 para o Windows 7 ou Windows Server 2008 R2, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:

976932 Obter informações sobre o Service Pack 1 para Windows 7 e Windows Server 2008 R2

Informações sobre reinício

Poderá ter de reiniciar o computador depois de aplicar esta correcção se todos os ficheiros afectados que estão a ser utilizados. Recomendamos que saia de todas as aplicações do .NET Framework antes de aplicar esta correcção para evitar ter de reiniciar o computador.

Informações sobre a substituição

Esta correção não substitui uma correção disponibilizada anteriormente.

Informações de ficheiro

A versão inglesa desta correção tem os atributos de ficheiro listados na tabela que se segue (ou atributos de ficheiro posteriores). As datas e horas destes ficheiros estão listadas no formato de Hora Universal Coordenada (UTC). Quando visualizar as informações dos ficheiros, estas serão convertidas na 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.

Para todas as versões baseadas em x86 do Windows Vista SP2 e do Windows Server 2008 SP2

Nome do ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

Smdiagnostics.dll

3.0.4506.5721

110,592

23-Ago-2011

10:57

x86

Smsvchost.exe

3.0.4506.5721

128,848

23-Aug-2011

10:57

x86

System.identitymodel.dll

3.0.4506.5721

442,368

23 -Ago-2011

10:57

x86

System.runtime.serialization.dll

3.0.4506.5721

970,752

23-Ago-2011

10:57

x86

System.runtime.serialization.dll

3.0.4506.5721

970,752

23-Ago-2011

10:57

x86

System.servicemodel.dll

3.0.4506.5721

5,992,448

23-Ago-2011

10:57

x86

System.servicemodel.washosting.dll

3.0.4506.5721

32,768

23-Ago-2011

10:57

x86

System.servicemodel.dll

3.0.4506.5721

5,992,448

23-Aug-2011

10:57

x86

Servicemodel.mof

Não aplicável

85,113

28-Jul-2011

10:57

Não aplicável

Servicemodel.mof.uninstall

Não aplicável

896

12-Aug-2010

14:24

Não aplicável

Servicemonikersupport.dll

3.0.4506.5721

17,256

23-Aug-2011

10:57

x86

System.identitymodel.dll

3.0.4506.5721

442,368

23-Ago-2011

10:57

x86

System.runtime.serialization.dll

3.0.4506.5721

970,752

23-Ago-2011

10:57

x86

System.servicemodel.dll

3.0.4506.5721

5,992,448

23-Aug-2011

10:57

x86

Para todas as versões baseadas em x64 do Windows Vista SP2 e do Windows Server 2008 SP2

Nome do ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

Servicemodel.mof

Não aplicável

85,113

28-Jul-2011

10:55

Não aplicável

Servicemodel.mof.uninstall

Não aplicável

896

12-Aug-2010

14:10

Não aplicável

Servicemonikersupport.dll

3.0.4506.5721

19,304

23-Aug-2011

10:55

x64

Smdiagnostics.dll

3.0.4506.5721

94,208

23-Ago-2011

10:55

x64

Smsvchost.exe

3.0.4506.5721

116,560

23-Aug-2011

10:55

x64

System.identitymodel.dll

3.0.4506.5721

401,408

23 -Ago-2011

10:55

x64

System.runtime.serialization.dll

3.0.4506.5721

847,872

23-Ago-2011

10:55

x64

System.runtime.serialization.dll

3.0.4506.5721

847,872

23-Ago-2011

10:55

x64

System.servicemodel.dll

3.0.4506.5721

5,332,992

23-Ago-2011

10:55

x64

System.servicemodel.washosting.dll

3.0.4506.5721

32,768

23-Ago-2011

10:55

x64

System.servicemodel.dll

3.0.4506.5721

5,332,992

23-Aug-2011

10:55

x64

Para todas as versões baseadas em IA-64 suportadas do Windows Server 2008 SP2

Nome do ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

Servicemodel.mof

Não aplicável

85,113

28-Jul-2011

11:26

Não aplicável

Servicemodel.mof.uninstall

Não aplicável

896

16-Aug-2010

14:36

Não aplicável

Servicemonikersupport.dll

3.0.4506.5721

33,640

23-Aug-2011

11:24

IA-64

Smdiagnostics.dll

3.0.4506.5721

94,208

23-Ago-2011

11:24

IA-64

Smsvchost.exe

3.0.4506.5721

116,560

23-Aug-2011

11:24

IA-64

System.identitymodel.dll

3.0.4506.5721

401,408

23-Aug-2011

11:24

IA-64

System.runtime.serialization.dll

3.0.4506.5721

847,872

23-Ago-2011

11:24

IA-64

System.runtime.serialization.dll

3.0.4506.5721

847,872

23-Aug-2011

11:24

IA-64

System.servicemodel.dll

3.0.4506.5721

5,332,992

23-Aug-2011

11:24

IA-64

System.servicemodel.washosting.dll

3.0.4506.5721

32,768

23-Ago-2011

11:24

IA-64

System.servicemodel.dll

3.0.4506.5721

5,332,992

23-Aug-2011

11:24

IA-64

Para todas as versões baseadas em x86 suportadas do Windows 7 SP1

Nome do ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

Smdiagnostics.dll

3.0.4506.5721

110,592

22-Aug-2011

22:36

x86

Smsvchost.exe

3.0.4506.5721

128,848

22-Aug-2011

22:36

x86

System.identitymodel.dll

3.0.4506.5721

442,368

22-Aug-2011

22:36

x86

System.runtime.serialization.dll

3.0.4506.5721

970,752

22-Aug-2011

22:36

x86

System.servicemodel.dll

3.0.4506.5721

5,992,448

22-Aug-2011

22:36

x86

System.servicemodel.washosting.dll

3.0.4506.5721

32,768

22-Aug-2011

22:36

x86

Servicemodel.mof

Não aplicável

85,113

12-Nov-2010

23:36

Não aplicável

Servicemodel.mof.uninstall

Não aplicável

896

10-Jun-2009

21:14

Não aplicável

Servicemonikersupport.dll

3.0.4506.5721

17,256

22-Aug-2011

22:36

x86

System.identitymodel.dll

3.0.4506.5721

442,368

22-Aug-2011

22:36

x86

Para todas as versões baseadas em x64 do Windows 7 SP1 e Windows Server 2008 R2 SP1

Nome do ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

Servicemodel.mof

Não aplicável

85,113

12-Nov-2010

23:39

Não aplicável

Servicemodel.mof.uninstall

Não aplicável

896

10-Jun-2009

20:30

Não aplicável

Servicemonikersupport.dll

3.0.4506.5721

19,304

22-Aug-2011

22:31

x64

Smdiagnostics.dll

3.0.4506.5721

94,208

22-Aug-2011

22:31

x64

Smsvchost.exe

3.0.4506.5721

116,560

22-Aug-2011

22:31

x64

System.identitymodel.dll

3.0.4506.5721

401,408

22-Aug-2011

22:31

x64

System.runtime.serialization.dll

3.0.4506.5721

847,872

22-Aug-2011

22:31

x64

System.servicemodel.dll

3.0.4506.5721

5,332,992

22-Aug-2011

22:31

x64

System.servicemodel.washosting.dll

3.0.4506.5721

32,768

22-Aug-2011

22:31

x64

Para todas as versões baseadas em IA-64 suportadas do Windows Server 2008 R2 SP1

Nome do ficheiro

Versão do ficheiro

Tamanho do ficheiro

Data

Hora

Plataforma

Servicemodel.mof

Não aplicável

85,113

12-Nov-2010

23:40

Não aplicável

Servicemodel.mof.uninstall

Não aplicável

896

10-Jun-2009

20:35

Não aplicável

Servicemonikersupport.dll

3.0.4506.5721

33,640

22-Aug-2011

22:25

IA-64

Smdiagnostics.dll

3.0.4506.5721

94,208

22-Aug-2011

22:25

IA-64

Smsvchost.exe

3.0.4506.5721

116,560

22-Aug-2011

22:25

IA-64

System.identitymodel.dll

3.0.4506.5721

401,408

22-Aug-2011

22:25

IA-64

System.runtime.serialization.dll

3.0.4506.5721

847,872

22-Aug-2011

22:25

IA-64

System.servicemodel.dll

3.0.4506.5721

5,332,992

22-Aug-2011

22:25

IA-64

System.servicemodel.washosting.dll

3.0.4506.5721

32,768

22-Aug-2011

22:25

IA-64

Mais Informações

Para mais informações sobre a terminologia de atualização de software, clique no seguinte número de artigo para visualizar o artigo na Base de Dados de Conhecimento Microsoft:

824684Descrição da terminologia padrão utilizada para descrever as atualizações de software da Microsoft

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×