An error in the ESB Exception Handling web-service
-
Thursday, July 05, 2012 2:46 PM
The error is without good explanation. How to get the "real" error description?
I can call this WS from the Sample .NET application. I can see the Fault_InputMessage on the ESB Portal. I can see it in the WCF logging.
Now I'm trying to call it from orchestration:
I've consumed the WCF Service, no problem. One thing is interesting, it is the multi-part message type for response. The ExceptionHandling_SubmitFault_OutputMessage message type has no part. Never saw such types. Anyway...
I'm sending the Fault_InputMessage. I can see the request in the WCF logging. But I cannot see the Fault_InputMessage on the ESB Portal.
THere is an error in the suspended orch instance:
"
Uncaught exception (see the 'inner exception' below) has suspended an instance of service '...Logging.Orchestrations.SendLogEntry(2ade256c-1106-b9a1-29bf-1a6af2dbe9aa)'.
The service instance will remain suspended until administratively resumed or terminated.
If resumed the instance will continue from its last persisted state and may re-throw the same unexpected exception.
InstanceId: 0f9a16e7-3c15-4912-aa37-7b3d78a8fac2
Shape name:
ShapeId:
Exception thrown from: segment -1, progress -1
Inner exception: Received unexpected message type '' does not match expected type '...Logging.Orchestrations.ExceptionHandling_SubmitFault_OutputMessage'.
Exception type: UnexpectedMessageTypeException
Source: Microsoft.XLANGs.Engine
Target Site: Void VerifyMessage(Microsoft.XLANGs.Core.Envelope, System.String, Microsoft.XLANGs.Core.Context, Microsoft.XLANGs.Core.OperationInfo)
The following is a stack trace that identifies the location where the exception o"
The Fault message is :
<Fault xmlns="http://www.w3.org/2003/05/soap-envelope">
<Code>
<Value>Receiver</Value>
<Subcode>
<Value xmlns:a="http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher">a:InternalServiceFault</Value>
</Subcode>
</Code>
<Reason>
<Text xml:lang="en-US">There was a failure executing the receive pipeline: "Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "Pipeline " Receive Port: "ExceptionHandling.SubmitFault" URI: "/ESB.ExceptionHandlingServices.WCF/ExceptionHandling.svc" Reason: Input string was not in a correct format.</Text>
</Reason>
<Detail>
<ExceptionDetail xmlns="http://schemas.datacontract.org/2004/07/System.ServiceModel" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<HelpLink i:nil="true"/>
<InnerException i:nil="true"/>
<Message>There was a failure executing the receive pipeline: "Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "Pipeline " Receive Port: "ExceptionHandling.SubmitFault" URI: "/ESB.ExceptionHandlingServices.WCF/ExceptionHandling.svc" Reason: Input string was not in a correct format.</Message>
<StackTrace>at Microsoft.BizTalk.Adapter.Wcf.Runtime.BizTalkServiceInstance.EndOperation(IAsyncResult result)
at AsyncInvokeEndEndTwoWayMethod(Object , Object[] , IAsyncResult )
at System.ServiceModel.Dispatcher.AsyncMethodInvoker.InvokeEnd(Object instance, Object[]& outputs, IAsyncResult result)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeEnd(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage7(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)</StackTrace>
<Type>Microsoft.BizTalk.Message.Interop.BTSException</Type>
</ExceptionDetail>
</Detail>
</Fault>Seems the ESB.ExceptionHandlingServices.WCF sends the Fault to the ESB port where something happened.
Leonid Ganeline [BizTalk MVP] BizTalkien: Naming Conventions for the BizTalk Solutions
All Replies
-
Thursday, July 05, 2012 5:32 PMLeonid, Why not try submitting the fault the Usual way?
-
Thursday, July 05, 2012 8:04 PM
@Sajid Ali Baig: that is the design. We are using some wrapper to talk to the ESB which can use only ESB Web-services. There is nothing I can do :(
I've got the answer for my question:
The ESB receive port (ExceptionHandling.SubmitFault), its pipeline returns the error if the FaultMessage does not have the ExceptionObject. The schema have Min Occurs=0 for this object. Looks like the bug in ESB:
It requires the optional record .
Leonid Ganeline [BizTalk MVP] BizTalkien: Naming Conventions for the BizTalk Solutions
- Marked As Answer by LeoTangModerator Sunday, July 15, 2012 2:50 AM

