Capturing SOAP faults and handling exceptions

c#, fault, soap, web-services

Solution

You can catch the exception with `FaultException` when the http status code is 2xx or 5xx, not 4xx. You can catch the http status code 4xx with `System.ServiceModel.ProtocolException` and then get the stream from the `InnerException` and parse it or get the FaultException from this stream. See http://blogs.msdn.com/b/nathana/archive/2011/03/31/deciphering-a-soap-fault-with-a-400-status-code.aspx for more details.

Problem

I am consuming a web services. Some methods throw exception when i invoked, because the parameters are invalid values, for example. I want to handle the exceptions but it don't contains any data information, only the message "Bad Request". This is my http response: ``` try { var data = client.SomeMethod(4); } catch (Exception exception) { // exception.Message = Bad Request // exception don't contains any more data information } ``` How can I capture the other information

Original source