The incoming parameter for .NET also has to be in object or array form for it to be correctly converted to the XML form that .NET expects The full example (when using WSDL) should be like this: <?php $client = new SoapClient("https://dev1.zoasis.com/service/services?WSDL"); $params->param1 = $value1; $params->param2 = $value2; $objectresult = $client->MyMethod($params); ?>
Also note the following.
When calling over SOAP to a .NET application, you may end up with an object as a result instead of a simple type, even if you're just grabbing a simple type (like a boolean result). Use a property accessor to get the actual result, like this:
I ran into something similar when consuming a third party (non .Net) web service. Everything worked until they sent back error codes in the Xml. Because they didn't properly address the error codes in their schema, .Net would fail with the error you mentioned.