2016-07-13 13 views
1

In einer WebAPI-App, ich werfe und Ausnahme, die gefangen wird. Ich mache das dann:Warum gibt Antwortcode einen anderen Code zurück?

Auf der Anruferseite ist die Nachricht Statuscode 400 wie erwartet.

Wenn ich dies tun, statt:

catch (Exception e) 
{ 
    return Request.CreateResponse(HttpstatusCode.BadRequest, myFile); 
} 

wo myFile ist ein HttpPostedFile, der Anrufer einen 500-Code erhält. HttpstatusCode.BadRequest == 400. Wie bekommt der Anrufer 500 im 2. Szenario?

+0

Die Variable myFile ist vom Typ HttpPostedFile? Probieren Sie diesen 'neuen StreamReader (myFile.InputStream) .ReadToEnd();' aus, anstatt myFile als zweites Argument zu übergeben. – 10100111001

+0

Diese Zeile wird ausgeführt, aber der Inhalt ist natürlich Jibberish. – 4thSpace

+0

Können Sie die tatsächliche Datei und die Kauderwelschantwort posten? – 10100111001

Antwort

0

Anstelle von CreateResponse: Verwenden: => Nur zuweisen Response.StatusCode = StatusCodes.Status400BadRequest; Dies wird automatisch den Status 400 zurückgeben. ODER Rückgabe des folgenden Objekts als return new HttpStatusCodeResult (StatusCodes.Status400BadRequest);

+0

Wo ist "Nur zuweisen"? – 4thSpace

+0

Geben Sie in der Controller-Methode – ravindra

+0

die Werte einfach der Response.Statuscode-Eigenschaft zu. – ravindra

Verwandte Themen