My issue was caused by using the auto-generated web-messages in my orchestration directly. I 'solved' my issue by:
- Using the .NET 2.0 Add Web Reference to save the wsdl generate xsd for the service
- Use Add Generated Items.. > Consume WCF Service, using the wsdl and xsd option and selecting the files generated in 1
- Manually alter the generated files to remove some duplicate complex type and invalid imports
- Alter the odx, change the modifiers on the message types to public (from internal)
- Exclude the web reference from my BizTalk project to avoid duplication
I can then use the generated multi-part messages in my orchestration. Critically, the message for the service taking no parameters was defined with a message part that I can use the message assignment shape to hard-code the message part with no content.
I also get some other side benefits such as Exception types.