PocketSOAP / .NET InteropWe'll show you how to make SOAP calls to ASP.NET WebServices and .NET Remoting using pocketSOAP as a client. (this needs the .NET Framework SDK or VisualStudio.NET, IIS installed and working and pocketSOAP v1.1 or greater)
.NET Service Codedownload the source for the .NET services and pocketSOAP clients here, and extract them to directory somewhere. There are 2 different .NET SOAP services in here, WebMethods and Remoting.
pocketSOAP <-> WebMethodsRun Internet Service Manager and add a new virtual directory called dn2 and make its home directory the WebMethodServer directory created above. You can check that IIS & .NET are running fine, by pulling up the service description page. There is a VBScript pocketSOAP client [webMethod.vbs] for this in the pocketSoapClients directory When you look at the C# server code you'll notice that it has the following attributes on it
[WebMethod, SoapRpcMethod]. the SoapRpcMethod attribute tells ASP.NET to use Soap Section 5 encoding, rather than the default literal XSD encoding. You can tell when you've forgotten to do this, as the server will treat all the parameters to your calls as defaults value (empty strings, 0, etc) rather than the values you pass. It is possible to use pocketSOAP to call .NET WebServices that are using the default document/literal style of SOAP, I'll be adding some notes on this soon.
pocketSOAP <-> RemotingGoto the RemotingServer directory and run nmake to compile the server. Once compiled start the server by running RemotingServer.exe. There is a VBScript pocketSOAP client [remoting.vbs] for this in the pocketSoapClients directory.
There are no specific SOAP issues on this one, its just a matter of getting the namespace URI for the methodname and the SOAPAction header correct. Peter Drayton pointed out that the assembly & class names are part of the request / response and that could make versioning an issue down the line.