Oprava: System.InvalidOperationException XslTransform při použití v scénáře s více podprocesy

Překlady článku Překlady článku
ID článku: 320011 - 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

Sdílíte-li objekt XslTransform z oboru názvů System.Xml.Xsl mezi více podprocesů, obdržet následující chybovou zprávu, když vytváříte aplikace:
System.InvalidOperationException: Kolekce byla změněna, operace výčtu může nespustit.
Zásobník volání může vypadat takto:
at System.Collections.ArrayListEnumeratorSimple.MoveNext()
    at System.Xml.XPath.XsltFunction.SetXsltContext(XsltContext context)
    at System.Xml.XPath.CompiledXpathExpr.SetContext(XmlNamespaceManager nsManager)
    at System.Xml.Xsl.Processor.GetValueQuery(Int32 key)
    at System.Xml.Xsl.Processor.ValueOf(ActionFrame context, Int32 key)
    at System.Xml.Xsl.ValueOfAction.Execute(Processor processor, ActionFrame frame)
    at System.Xml.Xsl.ActionFrame.Execute(Processor processor)
    at System.Xml.Xsl.Processor.Execute()
    at System.Xml.Xsl.XslTransform.Transform(IXPathNavigable input,XsltArgumentList args, TextWriter output)
				
tento problém má byla vidět pouze dochází v počítačích s více než jeden procesor, ačkoli je možné, že k tomuto problému může dojít také v počítači jeden procesor.

Příčina

K tomuto problému dochází z důvodu chyby v System.XML.dll sestavení.

Řešení

Tento problém vyřešíte pomocí nejnovější aktualizace service pack pro rozhraní Microsoft .NET Framework. Další informace získáte následujícím článku báze Microsoft Knowledge Base:
318836INFORMACE: Jak získat nejnovější aktualizaci Service Pack pro rozhraní .NET Framework
Poznámka: tuto opravu použít u systémů používajících rozhraní Microsoft .NET Framework s aktualizací Service Pack 1.

Anglická verze této opravy má následující atributy souborů nebo novější:
   Date          Version        Size              File name
   -------------------------------------------------------------
   03-APR-2002   1.0.3705.223   1,294,336 bytes   System.Xml.dll	
				

ŘEŠENÍ

Chcete-li tento problém vyřešit, slouží k ochraně použití metody transformace příkazu Zamknout (v aplikaci Microsoft Visual C# .NET) nebo SyncLock SyncLock... End konstrukce (v aplikaci Microsoft Visual Basic .NET). Toto řešení však může utrpět nepřijatelné výkonu sankce, v závislosti na návrhu a účel aplikace.

Jiné řešení, které mohou nabízejí lepší výkon je vytvoření řešení, které implementuje fondu zdrojů nebo mezipaměti N + 1 objekty XslTransform, kde N je počet procesorů v počítači.

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. Tento problém byl poprvé opraven aktualizací Microsoft .NET Framework Service Pack 2 (SP2).

Vlastnosti

ID článku: 320011 - Poslední aktualizace: 23. ledna 2014 - Revize: 3.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft .NET Framework Service Pack 1
  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 2
Klíčová slova: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbfix kbnetframe100presp2fix kbnetframe100sp2fix KB320011 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:320011

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