Search code examples
workflow-foundation-4workflow-foundationwcf-binding

Using Standard WF activities to access a web service - how to set 'expected namespace'?


I am attempting to connect to a .Net 1.0 web service using standard activities in WF 4.0.

I am using the SendandReceiveReplyFactory - the send portion seems to be working - however the ReceiveReplyForSend is for some reason expecting a tempuri.org namespace response rather than the www.thermo.com/informatics/xmlns/limswebservice namespace. Could anyone instruct me on how I can cause the activity to expect the correct NS.

Thanks in advance for your help.

All the best,

DJ

Error Message:

Workflow Console: Starting Workflow... Send Done Workflow 3fdc4d67-dcac-4092-b34b-9c347acdfe22 Terminated. Exception: System.ServiceModel.CommunicationException Error in deserializing body of reply message for operation 'Process'. OperationFormatter encountered an invalid Message body. Expected to find node type 'Element' with name 'ProcessResponse' and namespace 'http://tempuri.org/'. Found node type 'Element' with name 'ProcessResponse' and namespace 'http://www.thermo.com/informatics/xmlns/limswebservice' Workflow Console: Workflow Completed


Solution

  • The answer is to specify the namespace in the ServiceContractName Property of the 'Send' Activity using the following syntax '{http://someserver.org/test/}FileService ' in my case '{http://www.thermo.com/informatics/xmlns/limswebservice}LIMSSoap' . The syntax was sensitive to the trailing slash so a little trial and error was needed. Many thanks to the contributors to WF4 - How to consume external web service? for the answer.