Thursday, September 5, 2013

WCF-BasicHttp - ActionNotSupported


Last 4 hours I was hanging with the below error while testing my BizTalk Orchestration to send an request message to External wcf Service.

<s:Fault xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><faultcode xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">a:ActionNotSupported</faultcode><faultstring xml:lang="en-US">The message with Action '{service url}' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver.  Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).</faultstring></s:Fault>



Fix is very simple, we have to update the Action value in configure->general-> Action section

In order to integrate external WCFServices in BizTalk, both Schemas have to match.
If the External WCFService schema does not match the BizTalk schema, BizTalk will not be able to send the request. 

WCF adapter tries to match the operation name with an action defined in the BtsActionMapping, and if it can't find the Operation context property in the BTS message, it'll throw exception.


Another thing you can look at is the ENDPOINT properties... and make sure all parameters are properly set.

A good test is to use a Soap Tool to test your External WebService. You can try SoapUI tool
add your service to the SOAPUI and verify the operation action actions in the below shown screen.



if the BtsActionMapping is different, please update latest in the properties and verify. it'll fix the issue.
 

No comments:

Post a Comment