"If the server returns a SOAP message containing a <Fault> element to the client, the client copies the <faultcode>, <faultstring>, <faultactor> and <detail> element values in the SOAP message to the corresponding properties in the SoapClient30 object"In my testing this doesn't happen - the MSSOAP fault is a "Client:incorrect number of parameters" error. Seems like MSSOAP ignores the Fault element and gets hung up on the fact that the response doesn't match the WSDL. This is the response sent to the client (generated by throwing a standard SoapException in .NET):
<?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <soap:Fault> <faultcode>soap:Server</faultcode> <faultstring>Forced error</faultstring> <faultactor>Test</faultactor> <detail /> </soap:Fault> </soap:Body> </soap:Envelope>The web service works fine if I don't throw the exception on the server (i.e. No real problem with number of parameters in a normal call).