WCF Typed Faults and Internal Server Error code 500?
.net-3.5, iis-6, wcf
Solution
You can easily customize error handling of WCF. See Modifying HTTP Error Codes, Part 1 and Part 2 by Nicholas Allen's Indigo Blog; WCF: Throwing Exceptions With WebHttpBinding by Andre de Cavaignac; and Exception Handling in WCF Web Service by Brajendra Singh.
Problem
Here is my response envelope: ``` <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <s:Fault> <faultcode>s:Client</faultcode> <faultstring xml:lang="en-US">The creator of this fault did not specify a Reason.</faultstring> <detail> <ServiceFault xmlns="http://schemas.datacontract.org/2004/07/Zagat.Services.FaultException" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <ReasonCollection xmlns:a="http://schemas.datacontract.org/2004/07/Zagat.Enterprise.Domain"/> <ReasonMessage>Credentials are not valid</ReasonMessage> </ServiceFault> </detail> </s:Fault> </s:Body> </s:Envelope> enter code here ``` Here is my Header: ``` HTTP/1.1 500 Internal Server Error Date: Wed, 01 Jul 2009 17:55:33 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Cache-Control: private Content-Type: text/xml; charset=utf-8 Content-Length: 564 ``` How can I get IIS to return a 200 instead of a 500? My code runs on the server, I am just sending a fault to the client to process. Daniel