Da http://www.asp.net/web-api/overview/web-api-routing-and-actions/exception-handlingQual è la differenza tra HttpResponseException e HttpException
HttpResponseException
Che cosa succede se un controller Web API genera un'eccezione? Per default, la maggior parte delle eccezioni viene tradotta in una risposta HTTP con codice di stato 500, Errore interno del server.
Il tipo HttpResponseException è un caso speciale. Questa eccezione restituisce qualsiasi codice di stato HTTP specificato nel costruttore di l'eccezione.
Tranne che è non. Fiddler mi mostra che ne viene restituito un 500.
Tuttavia, HttpException sembra fare ciò che dice l'articolo.
La documentazione è errata o mi manca qualcosa?
UPDATE
Durante la digitazione che fuori, ho avuto un'idea. Ho provato sia da due controller, un ApiController e un controller MVC standard.
Le due eccezioni funzionano in ordine inverso a seconda del tipo di controller da cui vengono generate.
- Utilizzare HttpResponseException per restituire un codice HTTP corretto da un controller API .
- Utilizzare HttpException per restituire un codice HTTP corretto da un controller MVC .
È possibile accettare la propria risposta – sidon
Thx, questo spiega perché il mio framework ha funzionato perfettamente con MVC Controller (restituendo l'eccezione corretta) e non con più i controller API (restituendo 500) - ma non funziona non ha alcun senso :( – peter