Laden...

Objekt-ID nicht vorhanden beim Deserialisieren

Erstellt von Andreas@Tricept vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.114 Views
A
Andreas@Tricept Themenstarter:in
289 Beiträge seit 2006
vor 11 Jahren
Objekt-ID nicht vorhanden beim Deserialisieren

Hallo,

ich bekomme beim Deserialisieren einer Datei eine Fehlermeldung die ich nicht deuten kann: > Fehlermeldung:

"System.Runtime.Serialization.SerializationException" wurde aufgefangen.
Message=Auf das Objekt mit der ID 4349 wurde verwiesen, aber es ist nicht vorhanden.
Source=mscorlib
StackTrace:
bei System.Runtime.Serialization.ObjectManager.GetCompletionInfo(FixupHolder fixup, ObjectHolder& holder, Object& member, Boolean bThrowIfMissing)
bei System.Runtime.Serialization.ObjectManager.CompleteObject(ObjectHolder holder, Boolean bObjectFullyComplete)
bei System.Runtime.Serialization.ObjectManager.DoFixups()
bei System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
bei System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
bei System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
bei BPData.Data.Manager.ObjectSerializer1.GetObjektFromBinary(Byte[] pArray) in C:\Projekte\Management Cockpit\MCockpit 4.1\BPData\Data\Manager\ObjectSerializer.cs:Zeile 79. bei BPData.Data.Manager.ObjectSerializer1.Load() in C:\Projekte\Management Cockpit\MCockpit 4.1\BPData\Data\Manager\ObjectSerializer.cs:Zeile 93.
InnerException:

Wo habe ich beim Serialisieren einen Fehler gemacht? Und kann ich diese Datei dennoch Deserialisieren? Gibt es eine Art Fehlertoleranz.
Es handelt sich hier um eine größere Datei wo viel Arbeit verloren gehen würde.
Kennt ihr diese Meldung und könnt mir einige Hinweise geben?

16.834 Beiträge seit 2008
vor 11 Jahren

Willst Du hier eventuell ein Objekt serialisieren, das es in dieser Form gar nicht gibt - zB aufgrund von Lazy Loading?

Die Fehlermeldung ohne Quelle (Objekt, Code, Dateinhalt) ist relativ schwer nachzuvollziehen.

A
Andreas@Tricept Themenstarter:in
289 Beiträge seit 2006
vor 11 Jahren

Ich bekomme leider beim Deserialisieren einen Fehler.
Es handelt sich um eine Datei die der Kunde erstellt (Serialisiert) hat, jedoch nicht mehr verwenden kann (Da ein Deserialisierungsfehler aufgetaucht ist).
Ich wollte die Datei nun reparieren, rätsel aber wo hier der Fehler liegt.
Wenn er es Serialisiert hat, warum kann ich es dann nicht Deserialisieren?

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo Andreas@Tricept,

tja, schwer zu sagen. Irgendwie deutet das ja schon darauf hin, dass schon beim Serialisieren irgendwas schief gegangen ist. So eine Datei zu reparieren ist sicher nicht ganz einfach. Das lohnt sich vermutlich nur, wenn darin wichtige/wertvolle Daten enthalten sind. Und selbst dann würde ich eher versuchen, die Daten - soweit vorhanden und möglich - aus der Datei auszulesen (also mit eigenem Code statt der Standard-Deserialisierung) statt sie zu reparieren.

herbivore

W
872 Beiträge seit 2005
vor 11 Jahren

Habe gesehen, dass es da auch einen Framework-Bug mit der Meldung gab...insofern kannst Du auch in diese Falle gelaufen sein...