2013-11-20 19 views
7

:Web API 2 - ApiController.InternalServerError() HTTP 400 durum kodu döndürür Bu Web API eylem bir HTTP 500 (Dahili Sunucu Hatası) durum kodunu döndürür

public IHttpActionResult Post() 
{ 
    return InternalServerError(); 
} 

Ama bu eylem bir HTTP 400 (Bad Request döndürür) durum kodu:

public IHttpActionResult Post() 
{ 
    return InternalServerError(new Exception()); 
} 

ben hem eylemleri 500 durum kodu ve ikinci eylem dönmek beklenir tepki vücutta hatanın bazı ayrıntıları koyar.

İlk düşüncem bu bir hataydı ama başka bir giriş yapmak istedim. 400 yerine ikinci eylemde 400'ün iade edilmesinin iyi bir nedeni var mı?

GÜNCELLEME:

bu yöntem üzerinde belgeler okur:

belirtilen istisna ile bir System.Web.Http.Results.ExceptionResult (500 Dahili Sunucu Hatası) oluşturur.

Daha fazla düşünüyorum, bu bir hatadır. günlüğe edildi konuyla edildi takiben

return new ResponseMessageResult(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, invalidOpException)); 

:

+0

, bununla alakalı hiçbir sorun yok, sen onaylamak için http://aspnetwebstack.codeplex.com/workitem/list/basic – Fals

cevap

12

Sağ, bu bu issue..example düzeltmek için aşağıdaki çözümü kullanabilirsiniz ... Web API 2 yayımlanmasından sonra giderilmiştir bilinen bir sorun oldu önce:
https://aspnetwebstack.codeplex.com/workitem/1318

+0

Serin, teşekkür teker açılmalıdır. – jebar8

İlgili konular