locked
Sync via Webservice - SOAP Message corruption possible? RRS feed

  • Question

  • Hi,

    recently I get quite a lot XML parsing/validation exceptions coming up from Sync Services. We use Sync Services 1.0 (devices) via Webservice proxy.
    It seems when our users have bad connection the SOAP messages get sometimes corrupted!? some tags have "p" instead of "t" etc. and therefore start and end tags do not match.

    Some example stacktrace:
    here you see that the SOAP message has a tag "creapedate" where should be "createdate".

    * 18.11.09 12:12:29 | Das Starttag "createdate" in Zeile 7 entspricht dem Endtag "creapedate" nicht. Zeile 7, Position 14200. | bei System.Xml.XmlTextReaderImpl.Throw(Exception e)
    bei System.Xml.XmlTextReaderImpl.Throw(Int32 res, String[] args)
    bei System.Xml.XmlTextReaderImpl.ThrowTagMismatch(NodeData startTag)
    bei System.Xml.XmlTextReaderImpl.ParseEndElement()
    bei System.Xml.XmlTextReaderImpl.ParseElementContent()
    bei System.Xml.XmlTextReaderImpl.Read()
    bei System.Xml.XmlTextReader.Read()
    bei System.Xml.XmlReader.ReadString()
    bei System.Xml.XmlTextReader.ReadString()
    bei System.Data.DataTextReader.ReadString()
    bei System.Data.XMLDiffLoader.ReadOldRowData(DataSet ds, DataTable& table, Int32& pos, XmlReader row)
    bei System.Data.XMLDiffLoader.ProcessDiffs(DataSet ds, XmlReader ssync)
    bei System.Data.XMLDiffLoader.LoadDiffGram(DataSet ds, XmlReader dataTextReader)
    bei System.Data.DataSet.ReadXmlDiffgram(XmlReader reader)
    bei System.Data.DataSet.ReadXml(XmlReader reader, XmlReadMode mode, Boolean denyResolving)
    bei System.Data.DataSet.ReadXmlSerializable(XmlReader reader)
    bei System.Data.DataSet.System.Xml.Serialization.IXmlSerializable.ReadXml(XmlReader reader)
    bei System.Xml.Serialization.XmlSerializationReader.DeserializeSerializableElement(LogicalType deserializeAs, Accessor accessor, Fixup fixup, Object fixupTarget, String identifier, Boolean emptyValue, Boolean nullValue)
    bei System.Xml.Serialization.XmlSerializationReader.deserializeElement(Accessor accessor, Fixup fixup, Object fixupTarget)
    bei System.Xml.Serialization.XmlSerializationReader.DeserializeElementMember(MemberValueCollection members, Object fixupTarget, Hashtable internalState, Boolean& firstElement)
    bei System.Xml.Serialization.XmlSerializationReader.deserializeMembers(MemberValueCollection members, Object fixupTarget)
    bei System.Xml.Serialization.XmlSerializationReader.DeserializeComplexElement(LogicalType deserializeAs, Accessor accessor, Fixup fixup, Object fixupTarget, String identifier, Boolean emptyValue, Boolean nullValue)
    bei System.Xml.Serialization.XmlSerializationReader.deserializeElement(Accessor accessor, Fixup fixup, Object fixupTarget)
    bei System.Xml.Serialization.XmlSerializationReader.DeserializeElementMember(MemberValueCollection members, Object fixupTarget, Hashtable internalState, Boolean& firstElement)
    bei System.Xml.Serialization.XmlSerializationReader.deserializeMembers(MemberValueCollection members, Object fixupTarget)
    bei System.Xml.Serialization.XmlSerializationReader.DeserializeComplexElement(LogicalType deserializeAs, Accessor accessor, Fixup fixup, Object fixupTarget, String identifier, Boolean emptyValue, Boolean nullValue)
    bei System.Xml.Serialization.XmlSerializationReader.deserializeElement(Accessor accessor, Fixup fixup, Object fixupTarget)
    bei System.Xml.Serialization.XmlSerializationReader.DeserializeElementMember(MemberValueCollection members, Object fixupTarget, Hashtable internalState, Boolean& firstElement)
    bei System.Xml.Serialization.XmlSerializationReader.deserializeMembers(MemberValueCollection members, Object fixupTarget)
    bei System.Web.Services.Protocols.SoapMessageParser.execute()
    bei System.Web.Services.Protocols.SoapMessageSerializer.Deserialize(XmlReader reader, SoapHttpClientProtocol client, LogicalSoapMethod soapMethod, Boolean soap12)
    bei System.Web.Services.Protocols.SoapHttpClientProtocol.doInvoke(String methodName, Object[] parameters, WebClientAsyncResult asyncResult)
    bei at_feistritzwerke_wfm_mobile_client.Core.ServerProxy.GetChanges(SyncGroupMetadata groupMetadata, SyncSession syncSession)
    bei at_feistritzwerke_wfm_mobile_client.DataLayer.ProxyServerSyncProvider.GetChanges(SyncGroupMetadata groupMetadata, SyncSession syncSession)
    bei Microsoft.Synchronization.SyncAgent.DownloadChanges(SyncGroupMetadata groupMetadata)
    bei Microsoft.Synchronization.SyncAgent.Synchronize()
    bei at_feistritzwerke_wfm_mobile_client.DataLayer.UserClientSyncAgent.Synchronize()
    bei at_feistritzwerke_wfm_mobile_client.GUI.Forms.Tasks.TasksOverviewForm.btn_Sync_Click(Object sender, EventArgs e)
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei Resco.Controls.OutlookControls.ImageButton.OnMouseUp(MouseEventArgs e)
    bei System.Windows.Forms.Control.WnProc(WM wm, Int32 wParam, Int32 lParam)
    bei System.Windows.Forms.ContainerControl.WnProc(WM wm, Int32 wParam, Int32 lParam)
    bei System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam)
    bei Microsoft.AGL.Forms.EVL.EnterModalDialog(IntPtr hwnModal)
    bei System.Windows.Forms.Form.ShowDialog()
    bei at_feistritzwerke_wfm_mobile_client.GUI.Forms.MainMenuForm.btn_tasks_Click(Object sender, EventArgs e)
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei Resco.Controls.OutlookControls.ImageButton.OnMouseUp(MouseEventArgs e)
    bei System.Windows.Forms.Control.WnProc(WM wm, Int32 wParam, Int32 lParam)
    bei System.Windows.Forms.ContainerControl.WnProc(WM wm, Int32 wParam, Int32 lParam)
    bei System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam)
    bei Microsoft.AGL.Forms.EVL.EnterModalDialog(IntPtr hwnModal)
    bei System.Windows.Forms.Form.ShowDialog()
    bei at_feistritzwerke_wfm_mobile_client.GUI.Forms.LoginForm.mnu_Login_Click(Object sender, EventArgs e)
    bei System.Windows.Forms.MenuItem.OnClick(EventArgs e)
    bei System.Windows.Forms.Menu.ProcessMnuProc(Control ctlThis, WM wm, Int32 wParam, Int32 lParam)
    bei System.Windows.Forms.Form.WnProc(WM wm, Int32 wParam, Int32 lParam)
    bei System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam)
    bei Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
    bei System.Windows.Forms.Application.Run(Form fm)
    bei at_feistritzwerke_wfm_mobile_client.Program.Main(String[] args)




    Any hints appreciated.

    Andreas


    p.s. I hope there is no thread on this, but search function of the forum does not work for me since weeks! already opened a ticket on support but no feedback yet. :(
    p.p.s. still waiting for the Sync Services for devices QFE that was promised to be available quite some time ago
    • Moved by Max Wang_1983 Thursday, April 21, 2011 10:36 PM forum consolidation (From:SyncFx - Microsoft Sync Framework Database Providers [ReadOnly])
    Wednesday, November 18, 2009 2:52 PM

Answers

  • Hi,

    What you saw is a .net XML deserialization issue that is not related to Sync Service at all. If you search the Web, it seems that some other people hit this problem with .net 2.0 as well. I guess it is fixed in the latest .net SP package, but please send your question to .netfx forum to get an accurate answer: http://social.msdn.microsoft.com/Forums/en-US/netfxremoting/threads.

    Also, the error message is not English, you may want to mention your OS locale when you describe your issue in the .netfx forum.

    Thanks,
    Dong
    This posting is provided AS IS with no warranties, and confers no rights.
    Thursday, November 19, 2009 7:41 PM
    Moderator