2012-03-20 45 views
8

De acuerdo con HttpResponseMessage documentation en MSDN, la frase de razón (como en, la parte "OK" de 200 OK) debe ser configurable. La respuesta HTTP no me dejaba poner la frase razón:MVC4 WebAPI Reason Phrase?

HttpResponseMessage response = new HttpResponseMessage(System.Net.HttpStatusCode.Conflict); 
      response.ReasonPhrase = "conflict message"; 

Sin embargo, cuando la respuesta que consumo en el lado del cliente como WebResponse, no veo la razón de encargo mi frase. Esperaría encontrarlo en StatusDescription. Al observar la respuesta sin formato con Fiddler, no parece que la frase de motivo se configure en el servidor.

Un compañero de trabajo útil señaló que con los resultados de acción (y derivados), que podría hacer algo similar a:

new HttpStatusCodeResult(System.Net.HttpStatusCode.Conflict, "conflict message");

Parece como si esa es la funcionalidad precisa que busco, pero No estoy seguro de cómo convencer a WebAPI de cooperar.

¿Dónde me estoy equivocando?

+0

Este fue un error conocido con WCF Web API. Pensé que se corrigió en ASP.Net Web API. ¿Qué estás usando? –

+0

Estoy usando ASP.NET WebAPI. – Ross

+0

@Ross ¿Has resuelto esto ahora? Si es así, puede revisar las respuestas y marcar la correcta. – Junto

Respuesta

8

El ReasonPhrase no funciona en Cassini. Use IIS Express en lugar de Cassini y encontrará que la respuesta incluye la razón.