How can I return a custom HTTP status code from a WCF REST method?

Viewed 72048

If something goes wrong in a WCF REST call, such as the requested resource is not found, how can I play with the HTTP response code (setting it to something like HTTP 404, for example) in my OperationContract method?

7 Answers

For 404 there is a built in method on the WebOperationContext.Current.OutgoingResponse called SetStatusAsNotFound(string message) that will set the status code to 404 and a status description with one call.

Note there is also, SetStatusAsCreated(Uri location) that will set the status code to 201 and location header with one call.

You can also return a statuscode and reason body with WebOperationContext's StatusCode and StatusDescription:

WebOperationContext context = WebOperationContext.Current;
context.OutgoingResponse.StatusCode = HttpStatusCode.OK;
context.OutgoingResponse.StatusDescription = "Your Message";
Related