CORRECÇÃO: Vazamento de memória ao lançamento exceções em blocos de exceção aninhados

Traduções deste artigo Traduções deste artigo
ID do artigo: 810178 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Quando um erro de exceção é lançado de uma cláusula catch, o primeiro objeto de exceção será perda.

Por exemplo, quando ocorre um erro enquanto o programa está em execução, convém usar uma instrução try-catch para tratar a exceção. Entretanto, se o código que manipula a exceção na cláusula catch lança outra exceção, o primeiro objeto de exceção nunca será excluído pelo coletor de lixo do .NET Framework. Isso faz com que um vazamento de memória no processo de chamada.

Resolução

Uma correção suportada está agora disponível da Microsoft, mas destina-se somente a corrigir o problema descrito neste artigo. Aplique-o somente aos computadores que apresentarem esse problema específico. Pode ser nessa correção testes adicionais. Portanto, se você não tiver sido gravemente afetado por esse problema, a Microsoft recomenda que você aguarde o próximo service pack do .NET Framework que contém essa correção.

Para resolver esse problema imediatamente, contate o Microsoft serviços de suporte para obter a correção. Para obter uma lista completa dos números de telefone do Atendimento Microsoft do 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 de suporte normais 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 dessa correção apresenta os atributos de arquivo (ou posteriores) listados na tabela a seguir. As datas e horas desses arquivos são listadas na acordo hora universal coordenada (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 na ferramenta Data e hora no painel de controle.
   Date         Time   Version       Size       File name
   --------------------------------------------------------------
   16-Nov-2002  04:05  1.0.3705.378     69,632  Corperfmonext.dll
   16-Nov-2002  14:28  1.0.3705.378  1,953,792  Mscorlib.dll
   16-Nov-2002  03:56                   10,272  Mscorlib.ldo
   16-Nov-2002  04:04  1.0.3705.378  2,269,184  Mscorsvr.dll
   16-Nov-2002  04:04  1.0.3705.378  2,269,184  Mscorwks.dll

Mais Informações

Passos para reproduzir o problema

Observação A seguir é mínimo informações relevantes para demonstrar o problema discutido neste artigo.

Para reproduzir o problema, inclua o código seguinte em um projeto do Visual .NET translation from VPE for Csharp e execute-diretamente (não na IDE ou em qualquer outro depurador):
for (;;)
{
	try
	{
		throw new System.Exception("I leak.");
	}
	catch
	{
		try
		{
			throw new System.Exception("I do not leak.");
		}
		catch
		{
		}
	}
	Console.Write("Press ENTER to iterate.");
	Console.ReadLine();
}
Você irá notar que esse código vazamentos de identificadores de coleção lixo 2 para cada iteração.

Você pode monitorar esse comportamento, observando os contadores de desempenho a seguir:
  • .NET CLR Memory - Núm_de_bytes em todos os heaps aumentará por iteração
  • .NET CLR Memory - identificadores do GC # serão aumentam em 2 por iteração
Para informações adicionais sobre como usar o desempenho, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
248345Como criar um log usando o Monitor do sistema no Windows 2000

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no começo deste artigo.

Propriedades

ID do artigo: 810178 - Última revisão: sábado, 26 de outubro de 2013 - Revisão: 2.4
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 1.0 Service Pack 2
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbnetframe100presp3fix kbfix kbbug KB810178 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: 810178

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