2012-03-20 29 views
8

MSDN'de bulunan HttpResponseMessage documentation'a göre, (200 OK'nin "Tamam" bölümünde olduğu gibi) nedeninin ayarlanabilmesi gerekir. HTTP yanıtı beni neden ifadeyi ayarlayalım vermez: Bir WebResponse olarak istemci tarafında yanıtı tüketmek zamanMVC4 WebAPI Nedeni İfadesi?

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

Ancak, benim özel nedeni ifadesini görmüyorum. StatusDescription altında bulmayı umuyorum. Fiddler kullanarak ham cevaba baktığımızda, sunucudaki sebep ifadesinin ortaya çıktığı görülmemektedir.

yararlı bir iş arkadaşınız aksiyon sonuçları (ve türetilmiş), ben benzer bir şeyler yapabileceğini dikkat çekti:

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

o Peşinde olduğum kesin işlevselliği sanki görünüyor, ama ben WebAPI'yi işbirliği yapmaya nasıl ikna edeceğimi belirsiz.

Neredeler?

+0

Bu, WCF Web API'sı ile bilinen bir hataydı. ASP.Net Web API'sında düzeltildiğini düşündüm. Hangisini kullanıyorsun? –

+0

ASP.NET WebAPI kullanıyorum. – Ross

+0

@Ross Bunu şimdi çözdünüz mü? Eğer öyleyse, cevapları gözden geçirebilir ve doğru olanı işaretleyebilir misiniz? – Junto

cevap

8

ReasonPhrase, Cassini'de çalışmıyor. Cassini yerine IIS Express kullanın ve cevabın nedeni içerdiğini göreceksiniz.