For my project (somewhat similar, N+2 reporting to a WCF web service), I tried to use DPWS. Sending a request worked fine, but the firmware doesn't implement the XmlReader class, so DPWS can't deserialize the response. This might work for you if your service calls are one-way only.
As jrlyman3 said, XML generation is comparatively slow due to the verbosity of the language. I configured my WCF services to use JSON instead (exposed via RESTful URLs), and used Json.NetMF to (de)serialize the data sent / received.
I did eventually end up forking the library to strip out the bits that I didn't need, but its a good starting point.
- asciiman likes this