none
Debugging Deserialization Issues with WCF Published Schema (req/resp RRS feed

  • Question

  •  

    I have used "WCF Service Publishing Wizard to publish a schema (in the request/response pattern).

    An orchestration direct binds to the port, and processes the messsage and sends back the response.

     

    This is an InnerException of a System.ServiceModle.CommunicationException.

    {"Error in deserializing body of reply message for operation 'GetCustodianDocumentException'."}

     

    Inner Message(s):

    "The string '' is not a valid AllXsd value."

    "There is an error in XML document (1, 15505)."

     

    1.  I have all the tracking turned-on on the WCF 2-Way receive port (and SQL Agent on). When I use HAT and "save tracked messages", nothing gets saved.
    2.  My orchestration is doing direct binding, and I'm using a map on the outbound part of the receive port.

     

    I need to find out what is at Row 1 Column/position 15505 that it doesn't like.

    So far, I have found a few boolean fields that were null, and that was causing problems.

     

    I have a trace in my orchestration, so I know what it's sending out.  I have even run that through the "Test Map", but still doesn't give me any strong clue of what is at position 15505.

     

    I would really like to see the entire text of the exact message that it's complaining about.

     

    I wrote a C# deserializer, hoping to get the same message, but it bombs with a totally different problem, on Line 1 Position 2 - complaining that my namespace doesn't match. 

     

    Thanks

    Neal Walters

    http://BizTalk-Training.com

     

    Wednesday, May 14, 2008 7:38 PM

All replies

  • I now know for sure that it's a data problem.  I limited my query to "Top 1", and the data gets back okay.

    So I still need to know how to debug when I send back full query.

     

    Neal

    Wednesday, May 14, 2008 7:52 PM
  • I'm on a roll now.  WIth my "brute force" method, I determined that it was the 15th row from the database causing the problem.

     

    The database has a field called ExceptionDateCleared, and for that row, the date is null.

    Earlier today, I was getting an error on some of these dates, so I thought the deserializer would be happier if I removed the dates. In other words, I changed my BizTalk maps to not map the field to the output response XML when the field was empty, non-existing, or null.  

     

    So in my output XML, on the 15th row, there is no ExceptionDateCleared.

     

    What's driving me crazy is that the error is still at 15505.  I use an editor called EditPlus which let's me jump to column 15505 within a long row 1.  I think there are extra namespaces (created by manually running the map) in the XML that throw off the number count.

     

    Anyway - any better debugging techniques than the "brute force" method would be greatly appreciated! 

     

    And now - a new question - how do I return a null date? 

     

    Neal

    Wednesday, May 14, 2008 8:11 PM