Sending SOAP requests over to a SOAP server can sometimes be problematic. (aren’t they always with an internet standard?) Be wary about the ContentLength property. When your sending over to a .net stubbed service you may not need to specify, however, when sending with variable byte length codepage (UTF-8, 16 etc) your length MUST be the byte length, not the un-paged length.
Bad
request.ContentType = "text/xml; charset=utf-8";
request.ContentLength = postData.Length;
Good
request.ContentType = "text/xml; charset=utf-8";
request.ContentLength = System.Text.Encoding.UTF8.GetByteCount(postData);
Otherwise the .net SOAP client will throw a WebException of “Request Cancelled”, when any byte of your request is in the extended range (> ASCII 128), as this is when the UTF-8 variable-ness kicks in, and decides to use more than one byte.
UTF-8 can use up to 8 bytes to encode a character within the packet.