Exception bei XmlSerializer

16/03/2010 - 11:11 von Thomas Kehl | Report spam
Hallo zusammen.

Ich verwende folgenden Code:

XmlSerializer ser = new XmlSerializer(type);

Diese Zeile wird kurzzeitig für mehrere Typen aufgerufen. Nun kommt es
manchmal vor, dass folgender Fehler auftritt:

System.InvalidOperationException: Temporàre Klasse kann nicht generiert
werden (result=1).
error CS0016: In die Ausgabedatei
c:\Users\t.kehl.PPSOFTWARE\AppData\Local\Temp\qoo2l_og.dll konnte nicht
geschrieben werden -- Der Prozess kann nicht auf die Datei zugreifen, da sie
von einem anderen Prozess verwendet wird. .

bei System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns,
XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
bei System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[]
xmlMappings, Type[] types, String defaultNamespace, Evidence evidence,
XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable
assemblies)
bei System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings,
Type[] types, String defaultNamespace, String location, Evidence evidence)
bei
System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping
xmlMapping, Type type, String defaultNamespace)
bei System.Xml.Serialization.XmlSerializer..ctor(Type type, String
defaultNamespace)
bei System.Xml.Serialization.XmlSerializer..ctor(Type type)

Ich kann mir das nicht erklàren - bzw. habe keine Ahnung, was ich anders
machen kann. Ich habe mal mit dem Reflector in den XmlSerializer geschaut -
aber da wird immer dieser temporàre Name erstellt. Grundsàtzlich
funktionierts ja auch - nur manchmal tritt dieser Fehler auf.
Kann mir jemand einen Tipp geben, wo ich hier ansetzen könnte? - Vielen Dank
für eure Hilfe.

Viele Grüsse, Thomas
 

Lesen sie die antworten

#1 Marcel Roma
16/03/2010 - 16:22 | Warnen spam
Hallo Thomas,

Am Tue, 16 Mar 2010 11:11:24 +0100 schrieb Thomas Kehl:

Hallo zusammen.

Ich verwende folgenden Code:

XmlSerializer ser = new XmlSerializer(type);

Diese Zeile wird kurzzeitig für mehrere Typen aufgerufen. Nun kommt es
manchmal vor, dass folgender Fehler auftritt:

System.InvalidOperationException: Temporàre Klasse kann nicht generiert
werden (result=1).
error CS0016: In die Ausgabedatei
c:\Users\t.kehl.PPSOFTWARE\AppData\Local\Temp\qoo2l_og.dll konnte nicht
geschrieben werden -- Der Prozess kann nicht auf die Datei zugreifen, da sie
von einem anderen Prozess verwendet wird. .

bei System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns,
XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
bei System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[]
xmlMappings, Type[] types, String defaultNamespace, Evidence evidence,
XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable
assemblies)
bei System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings,
Type[] types, String defaultNamespace, String location, Evidence evidence)
bei
System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping
xmlMapping, Type type, String defaultNamespace)
bei System.Xml.Serialization.XmlSerializer..ctor(Type type, String
defaultNamespace)
bei System.Xml.Serialization.XmlSerializer..ctor(Type type)

Ich kann mir das nicht erklàren - bzw. habe keine Ahnung, was ich anders
machen kann. Ich habe mal mit dem Reflector in den XmlSerializer geschaut -
aber da wird immer dieser temporàre Name erstellt. Grundsàtzlich
funktionierts ja auch - nur manchmal tritt dieser Fehler auf.
Kann mir jemand einen Tipp geben, wo ich hier ansetzen könnte? - Vielen Dank
für eure Hilfe.

Viele Grüsse, Thomas



Versuch mal das Verzeichnis, in dem die temporàren Dateien abgelegt werden
zu leeren, oder umzuleiten. Vielleicht bringt's was.

Siehe auch: An update that lets you configure the location of the temp
folder is available for the .NET Framework 2.0:
http://support.microsoft.com/kb/934529/en-us

Wenn alles nicht hilft, starte Process Monitor und suche nach dem
"Übeltàter".


Gruss
Marcel

Ähnliche fragen