Oprava: Nevracení paměti při případě výjimky z bloků vnořenou výjimka

Překlady článku Překlady článku
ID článku: 810178 - Produkty, které se vztahují k tomuto článku.
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Při vyvolání chybě výjimky z klauzule catch úniku bude první objekt výjimku.

Například pokud dojde k chybě, zatímco je program spuštěn, můžete použít příkaz catch zkuste zpracovat výjimku. Však Pokud kód, který zpracovává výjimka v klauzule catch způsobí výjimku jiného, první objekt výjimka nikdy odstraněny podle kolekcí nesmyslné .NET Framework. To způsobuje nevracení paměti v procesu volajícího.

Řešení

Společnost Microsoft má nyní k dispozici podporovanou opravu, která je určena pouze k odstranění problému popsaného v tomto článku. Použijte ji pouze v počítačích, ve kterých dochází k tomuto konkrétnímu problému. Tato oprava pravděpodobně projde dalším testováním. Doporučuje proto, pokud není použití tento problém, společnost Microsoft počkat na další aktualizaci .NET Framework service pack, která obsahuje tuto opravu.

Potřebujete-li odstranit tento problém okamžitě, obraťte se na služby technické podpory společnosti Microsoft, kde můžete tuto opravu získat. Úplný seznam telefonních čísel podpory pro produkty společnosti Microsoft a informace o cenách podpory naleznete na následujícím webu společnosti Microsoft:
http://support.microsoft.com/contactus/?ws=support
Poznámka: ve zvláštních případech mohou být poplatky, které jsou třeba obvykle zaplatit za telefonní hovory stornovány, jestliže Microsoft pracovník Určuje, že konkrétní aktualizace vyřeší váš problém. Další dotazy a žádosti o podporu, které se netýkají konkrétní aktualizace, podléhají běžným sazbám za poskytnutí podpory.

Anglická verze této opravy má následující atributy souborů (nebo novější). Data a časy jednotlivých souborů jsou uvedeny ve formátu UTC (Coordinated Universal Time). Pokud zobrazíte informace o souboru, bude převedena na místní čas. Rozdíl mezi místním ČASEM a najít, použijte kartu časové pásmo v ovládacím panelu Datum a čas.
   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

Další informace

Kroky pro reprodukci tohoto chování

Poznámka: Následující je minimální informace vztahující se k ukazují potíže popisované v tomto článku.

Problém reprodukovat, zahrnují následující kód v projektu Visual C# .NET a spusťte jej přímo (není v IDE nebo jiných debugger):
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();
}
Zjistíte bude tento kód nevrací 2 nesmyslné kolekce úchyty pro každou iteraci.

Toto chování můžete sledovat prohlédnutím PerfMon následující čítače:
  • Paměť .NET CLR - Počet_bajtů ve všech haldách zvýší za iterace
  • .NET CLR Paměti-# GC popisovače zvýší 2 za iterace
Další informace o použití PerfMon klepnutím na následující číslo článku databáze Microsoft Knowledge Base:
248345Jak vytvořit protokol použití sledování systému v systému Windows 2000

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny na začátku tohoto článku.

Vlastnosti

ID článku: 810178 - Poslední aktualizace: 11. února 2014 - Revize: 2.4
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft .NET Framework 1.0 Service Pack 2
Klíčová slova: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbnetframe100presp3fix kbfix kbbug KB810178 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:810178

Dejte nám zpětnou vazbu

 

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