Warum fügt das Hinzufügen einer Newline zu StatusDescription in ASP.Net die Verbindung zu?

8

Wenn ich eine StatusDescription mit einem Zeilenumbruch zurücksende, der das HttpStatusCodeResult von ASP.Net MVC 3.0 verwendet, wird die Verbindung zu meinem Client zwangsweise geschlossen. App wird in IIS 7.0 gehostet.

Beispiel Controller:

%Vor%

Beispielmandant:

%Vor%

Geworfene Ausnahme:

%Vor%

Das Verhalten ist konsistent, wenn curl (curl 7.25.0 (i386-pc-win32) libcurl / 7.25.0 zlib / 1.2.6)

verwendet wird
  

curl http://localhost/app/Foo/MyAction

curl: (56) Recv failure: Verbindung wurde zurückgesetzt

Bearbeiten

Ich habe dieses benutzerdefinierte ActionResult verwendet, um die gewünschten Ergebnisse zu erzielen.

%Vor%     
JJS 11.08.2012, 20:00
quelle

1 Antwort

10

Sie können keinen Zeilenumbruch mitten in einem HTTP-Header haben.

Das HTTP-Protokoll gibt an, dass das Ende eines Headers ein Zeilenumbruch ist.

Da sich der Zeilenumbruch in der Mitte eines Headers befindet, ist der Header kein gültiger Header und Sie erhalten diesen Fehler.

Fix: Legen Sie keinen Zeilenumbruch in die Mitte eines HTTP-Headers.

    
Oded 11.08.2012, 20:06
quelle

Tags und Links