Calling webMethods webservice from NET using SOAP RPC

When calling a webMethods web service from a .NET client the order of the return values is getting switched either by the .NET client or webMethods Server.

The web service was created using Developer 6.1. The .NET client version is 2.0. The web Service contains a couple variables and an array as input and a couple of variables and an array as outputs. The communication is using a SOAP RPC call. Inputs and Outputs are similar to below.

Input:
A
B
C
Array of D

Output:
A
E
F
G
Array of H

When I run the Service in Developer everything works fine. When I call the service from the .Net client I have problems with two of the output vairables. What I get is the value of A in the E variable and the A variable is not populated. I looked in the Reference.vb file and noticed that mapping seemed to be a little off. For some reason the E varaible was my return variable and all the others were ByRef inputs to the function. Also the the order of the return variables seemed odd. The variable A was referenced as item 1 in the results array and the variable E was referend as item 0 in the results array. I modified the Reference.vb to switch these values A to 0 and E to 1 and everything works good except variable E is not populated. I don’t know if this is something to do with it being the return string from the function or some other incorrect mapping???

Does anyone have any ideas? Any help would be greatly appreciated.

Did you try to test your wsdl file using ‘WebServiceStudio 2.0’ from Microsoft? You can get it free from http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=65a1d4ea-0f7a-41bd-8494-e916ebc4159c

If the testing fails, try to follow the steps in ‘Web Services Developers Guide 6.pdf’ and regenerate the wsdl file.