So, after spending a fair amount of time building and debugging/testing a web service that I have built for a client I have come to the realization that not only is NuSOAP poorly supported, it is a great concept that has failed at a complete execution. I think the real problem is that one cannot Google anything having to do with SOAP without tripping over NuSOAP results. There are plenty of blog posts, tutorials, and guides that cover many aspects of the framework’s use. Additionally, there are plenty of questions asked on stackoverflow and the “.NET” forums regarding the use of NuSOAP.
It is kind of saddening really, the framework has great potential, a large following, and probably be considered a “Swiss Army Knife” of a SOAP framework. The problem is that it has not been in active development for quite sometime (2010 was the last reference I found) and the guides and tutorials lack in some areas (complex return types, wsdl customization). The tutorials out there are great, written by some great programmers that have obviously given some sizable time into creating the tuts, but they all lack completeness. Using the tuts out there I was able to build up a rather complex web service in a short amount of time and get it working great, until I needed to provide a web method that returned a complex data set. On top of the issues with complex data types (that SNAFU will be saved for a later post), the service was built for the sole purpose of being consumed by a client add on to an existing Windows application that was written in VB.NET.
The great turn for the worst happened when I finally had gotten the web service returning the needed complex types properly (P.S. – I want my 10 days back that I spent chasing the cryptic configurations) that I found out that NuSOAP does not return conformant SOAP XML messages. The conformance is for the 1.0 standard, not the current standard that .NET requires to properly deseriralize a SOAP complex type response. See the response by John Saunders here for the skinny.
The short of it all is that NuSOAP is not compatible with a .NET client. Sad really, and I hope that I get the chance to use NuSOAP in the future because it was kind of fun to build a service with this framework, even with all the short comings.
I hope that a future me comes across this post about the point in a project when they are getting ready to put the rubber down, maybe I will save them some time in building something that won’t work in the end.