Everyone knows that Visual Studio 2008 has a build-in support for WCF which is the latest generation of Microsoft soap stack. By default, when writing web service clients in VS 2008 a WCF-flavored proxy is generated. However WCF only supports a subset of XML schema and WSDL patterns. For example it does not support RPC/Encoded WSDLs and XML attributes. Many older WSDLs use RPC/Encoded. With such WSDLs WCF is supposed to gracefully downgrade itself to .Net 2.0 which does support these WSDLs. I have noticed that in some cases this does not happen correctly. The result can be web service methods returning null instead of values.
The solution for such cases is to manually instruct VS 2008 to use its backward compatible proxy. All you need to do is:
1. Press the "Add Service Reference" as usual
2. Press the "Advanced..." button
3. Select "Add Web Reference..."
4. Use the good old .Net 2.0 proxy flavours