Geeks With Blogs
Matt Gilbert An attempt at techy stuff

I’ve recently been working a fair bit with WCF and web services in and out of BizTalk. One of the things this involves is hooking up some orchestration ports using the generated port types when the target service is consumed. Once the consuming wizard is done, the generated port type definitions can then be edited to include a fault message. I chose to assign the out-the-box BTS.soap_envelope_1__1+Fault message.

Now, the physical 2-way send port the orchestration wires up to has a custom receive pipeline which includes an XML disassembler and a collection of explicitly named document schemas the pipeline can disassemble. I made sure that BTS.soap_envelope_1__1+Fault was one of those schemas that should be recognised. When a good response message was returned, all was well but when the target service returned a fault, the pipeline spat it out with the classic “No Disassemble stage components can recognize the data”.

Other pipelines in other projects were working in exactly the same way and were receiving and dealing with their fault messages perfectly fine. So what was wrong? After much solution cleaning/ rebuilding (hoping it was just an assembly caching issue) and getting nowhere it took a step back and looked again at a working pipeline. The only difference was that in the list of document schemas set on the XML disassembler, the fault message was the first in the list on the working pipeline and the last in the list on my one. Sure enough, when I reordered the list to put the fault message at the top and redeployed it, fault messages were then disassembled correctly.

This rang some vague bells in my head at the time to do with first matching in the list but I can’t see why a first match would fail if the only match happened to be at the bottom of the list – it’s still there and still the first match.

Posted on Friday, March 13, 2009 2:24 PM BizTalk | Back to top

Comments on this post: Pipeline handling of SOAP faults

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © mattjgilbert | Powered by: