I’m working on a project where we are building an ESB on the Microsoft Azure platform.
We ran into a little “quirk” that ended up costing us some time, so I thought I’d put a post together for the benefit of anyone else that may run into it. Granted you need to be doing things in a very specific manner in order to experience it, but we managed!
We have an on-ramp service that does a variety of things. When it is done, it posts the incoming message to a Service Bus topic (determined by the Rules service). The idea is that there would be subscriber(s) that would pick up the message. The problem was that although the message in the on-ramp was valid XML, the message as received by a Service Bus connector in my Logic App was receiving invalid XML. Why?? What’s up with this?
It turned out that our wonderful valid XML message was being inexplicably prefixed with the string “
@\u0006string\b3http://schemas.microsoft.com/2003/10/Serialization/?\u000b”, and suffixed with some extraneous characters too.
After much digging and looking around, I came across a post that explained it. Our core issue was the way were creating a brokered message (seems like a perfectly valid thing to do), and once we switched to the stream approach to message creation listed in the blog post, everything started working as expected.
You can find details here in this post by Bruno Câmara: