We've got REST and SOAP endpoints for our service so we use WebFaultException to pass friendly messages. This works great for the REST calls not so much for the SOAP calls. Below is the trace which clearly shows the friendly message in the "detail" element. But the FaultException that is raised on the client has the http status code description in the message - not the real message thrown from the service. Is there any way to surface the intended message on the client?
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header></s:Header>
<s:Body>
<s:Fault>
<faultcode xmlns:a="http://schemas.microsoft.com/2009/WebFault" xmlns="">a:BadRequest</faultcode>
<faultstring xml:lang="en-US" xmlns="">Bad Request</faultstring>
<detail xmlns="">
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">Country code must be 3 characters.</string>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
Also, this is in .net 4.0 and we are using Castle's WCF facility (DefaultServiceModel and RestServiceModel).