Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Vertrocknete Workflowinstanz (oder: DehydrateInstance: SerializationException)

Ein gän­gige Methode in der Workflowentwicklung für Sharepoint 2007 ist es, Infopath-Formulare zu ver­wen­den. Um die Daten die­ser Formulare kom­for­ta­bel zu dese­ria­li­sie­ren, wer­den in der Regel die von Infopath zur Verfügung gestell­ten XSD-Schemas mit­tels des XSD-Tools in Klassen umge­wan­delt. Bei der Weiterverwendung der gene­rier­ten Klasse kann fol­gen­den­der Fehler ggf. auch nur spo­ra­disch auf­tre­ten:

DehydrateInstance: System.Runtime.Serialization.SerializationException: End of Stream encoun­te­red before par­sing was com­ple­ted.
at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler hand­ler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler hand­ler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
at System.Workflow.ComponentModel.Activity.Load(Stream stream, Activity outerActivity, IFormatter for­mat­ter)
(…)

Das Problem liegt hier­bei nicht an den eigent­li­chen Daten, son­dern an einem zusätz­li­chen Datenfeld, wel­ches von Infopath erzeugt wird:

pri­vate System.Xml.XmlAttribute[] anyAttrField;

Da die­ses mit kei­nem Attribut deko­riert ist, kommt es zu Problemen bei der (De-)Serialisierung. Abhilfe schafft das NonSerialized()-Attribut:

[NonSerialized()]
pri­vate System.Xml.XmlAttribute[] anyAttrField;

Related Posts

1 Kommentar

[…] einem Blogeintrag vom 20. Juli 2007 habe ich bereits über diese Fehlermeldung berich­tet und einen Lösungsweg auf­ge­zeigt. In […]

Comments are closed.

Pin It on Pinterest