CORRECÇÃO: Quando executar uma aplicação baseada no .NET Framework 2.0, ocorre uma excepção System.AccessViolationException ou ocorre um bloqueio de mensagens não entregues em dois threads num domínio de aplicação

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

Nesta página

Sintomas

Encontrar um dos seguintes problemas ao executar uma aplicação no Microsoft .NET Framework 2.0.

Problema 1

Ou ocorre a uma corrupção de dados ou recebe uma excepção System.AccessViolationException. Se receber a excepção, recebe também a seguinte mensagem de erro:
Tentativa de ler ou escrever memória protegida. Isto é frequentemente uma indicação de que outra memória está danificada.
Este problema ocorre quando se verificam as seguintes condições:
  • Uma assemblagem é partilhada em vários domínios.
  • Um método de geração de código fino (LCG) está anexado a um tipo que esteja dentro da assemblagem partilhada.
  • O método LCG é recolhido em vários domínios. Em seguida, o código da assemblagem é compilado por um compilador (JIT JUST) just-in-time.
  • Tanto o código JIT e o método LCG efectuam uma chamada de interface.

Problema 2

Quando executa a aplicação num computador que tenha a utilização da memória alta, a aplicação deixa de responder. Se depurar o problema utilizando a ferramenta Windbg.exe, encontrará que ocorre um bloqueio de mensagens não entregues em dois threads num domínio de aplicação.

Causa

Causa do problema 1

A Corrupção de dados ocorre porque o common language runtime (CLR) stub função já não está na memória consolidada de depois de um domínio de aplicação reciclado. A função foi gerada dinamicamente.

Causa do problema 2

A aplicação deixa de responder porque um thread obtém um bloqueio para executar a função m_prCachedMethodPermissionsLock. Em seguida, o thread está suspensa para participar na recolha de lixo e não liberta o bloqueio. No entanto, outro thread que está no modo de cooperação no mesmo domínio de aplicação continua a aguardar que o bloqueio.

Resolução

Informações de correcções

Tem uma correcção suportada disponível na Microsoft. No entanto, esta correcção destina-se a corrigir o problema descrito neste artigo. Aplique esta correcçã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 afectado por este problema, recomendamos que aguarde pela próxima actualização de software que contenha esta correcção. Para transferir esta correcção da Galeria de código da MSDN (Microsoft Developer Network), visite o seguinte Web site da Microsoft:
http://code.msdn.microsoft.com/KB975954
Nota A Galeria de código da MSDN apresenta os idiomas para o qual a correcção está disponível. Se não vir o idioma listado, é porque a página de recursos de galeria de código não está disponível para esse idioma.

Em alternativa, pode transferir este conjunto de correcções partir do seguinte site da Microsoft na Web de ligação:
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=26146

Pré-requisitos

Tem de ter o .NET Framework 2.0 Service Pack 2 (SP2) ou o .NET Framework 3.5 Service Pack (SP1) instalado para aplicar esta correcção.

Requisito de reinício

Não é necessário reiniciar o computador depois de aplicar esta correcção não se estiver a ser utilizada nenhuma instância do .NET Framework.

Informações sobre substituição de correcções

Esta correcção não substitui outras correcções.

Informações do ficheiro

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, são convertida 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.
Para todas 86 versões do Windows Vista SP2 e Windows Server 2008 SP2 x
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempo
Mscorlib.dll2.0.50727.44084,550,65621-Oct-200907: 24
Mscordacwks.dll2.0.50727.4408989,00021-Oct-200907: 24
Mscorwks.dll2.0.50727.44085,818,68821-Oct-200907: 24
Sos.dll2.0.50727.4408388,92021-Oct-200907: 24
Para todas as suportadas versões baseadas em 64 do Windows Vista SP2 e Windows Server 2008 SP2 x
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempo
Mscorlib.dll2.0.50727.44084,567,04021-Oct-200907: 24
Mscordacwks.dll2.0.50727.44081,758,53621-Oct-200907: 24
Mscorwks.dll2.0.50727.440810,061,12021-Oct-200907: 24
Sos.dll2.0.50727.4408485,17621-Oct-200907: 24
Para todas as edições baseadas em Itanium do Windows Server 2008 SP2
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempo
Mscorlib.dll2.0.50727.44084,009,98421-Oct-200907: 26
Mscordacwks.dll2.0.50727.44083,085,12821-Oct-200907: 26
Mscorwks.dll2.0.50727.440820,173,12021-Oct-200907: 26
Sos.dll2.0.50727.4408872,76021-Oct-200907: 27
Para todas x versões baseadas em 86 do Windows 7.0
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempo
Mscorlib.dll2.0.50727.49344,550,65603-Nov-200923: 27
Mscordacwks.dll2.0.50727.4934995,16003-Nov-200923: 27
Mscorwks.dll2.0.50727.49345,816,65603-Nov-200923: 27
Sos.dll2.0.50727.4934388,93603-Nov-200923: 28
Para todas as suportadas baseadas em 64 versões do Windows 7.0 e do Windows Server 2008 R2 x
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempo
Mscorlib.dll2.0.50727.49344,567,04003-Nov-200923: 33
Mscordacwks.dll2.0.50727.49341,764,16803-Nov-200923: 33
Mscorwks.dll2.0.50727.493410,058,56003-Nov-200923: 33
Sos.dll2.0.50727.4934485,19203-Nov-200923: 34
Para todas as versões baseadas em Itanium do Windows Server 2008 R2 suportadas
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempo
Mscorlib.dll2.0.50727.49344,009,98403-Nov-200923: 32
Mscordacwks.dll2.0.50727.49343,085,64003-Nov-200923: 32
Mscorwks.dll2.0.50727.493420,164,94403-Nov-200923: 32
Sos.dll2.0.50727.4934872,76003-Nov-200923: 32
Para todas x 86-based versões do Windows XP, do Windows Server 2000 e do Windows Server 2003
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
Mscordacwks.dll2.0.50727.4408989,00030-Sep-200905: 12x 86
Mscorlib.dll2.0.50727.44084,550,65630-Sep-200905: 12x 86
Mscorwks.dll2.0.50727.44085,818,68830-Sep-200905: 12x 86
Sos.dll2.0.50727.4408388,92030-Sep-200905: 12x 86

Para todas as suportadas x 64 versões do Windows XP, do Windows Server 2000 e do Windows Server 2003
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
Mscordacwks.dll2.0.50727.44081,758,53629-Sep-200923: 57x 64
Mscorlib.dll2.0.50727.44084,567,04029-Sep-200923: 51x 64
Mscorwks.dll2.0.50727.440810,061,12029-Sep-200923: 55x 64
Sos.dll2.0.50727.4408485,17629-Sep-200923: 52x 64

Para todas as versões baseadas em Itanium do Windows XP, do Windows Server 2000 e do Windows Server 2003 suportadas
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
Mscordacwks.dll2.0.50727.44083,085,12830-Sep-200901: 05IA-64
Mscorlib.dll2.0.50727.44084,009,98430-Sep-200901: 03IA-64
Mscorwks.dll2.0.50727.440820,173,12030-Sep-200900: 58IA-64
Sos.dll2.0.50727.4408872,76030-Sep-200901: 02IA-64

Ponto Da Situação

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

Propriedades

Artigo: 975954 - Última revisão: 14 de fevereiro de 2010 - Revisão: 2.2
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 2.0 Service Pack 2
  • Microsoft .NET Framework 3.5 Service Pack 1
  • Microsoft .NET Framework 2.0
Palavras-chave: 
kbmt kbexpertiseadvanced kbsurveynew kbqfe kbhotfixserver KB975954 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: 975954

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