Calling WCF from C code
See the question and my original answer on StackOverflowWCF is very powerful and configurable and allows to use many different bindings (HTTP, Sockets, MSMQ, custom, etc.). Starting from version 3.5 I belive, you can use a JSON/REST bindings and contracts. Here is an official link about this: Overview of REST in WCF, and some samples here: WCF 4 JSON REST Service and here: REST Service with WCF and JSON.
Now, why REST and JSON? because these prococols are very lightweight and do not need huge dependencies or libraries. That was in fact the whole point of REST, as opposed to SOAP.
So, with these, you only need a TCP/HTTP stack and a JSON parser on the client-side wich makes it relatively easy to program in C. Here is a link to a simple JSON library: Jansson