Ist es notwendig, den Content-Length in meinen Antwort-Header zu setzen?
Frage
Ich bin die Überprüfung einig Legacy-Code und ich habe einen Fehler gefunden, die die Antwort auf unbestimmte Zeit sitzen verursacht.
Hier ist die Grundidee:
Response.Content-Type = "application/octet-stream"
Response.AddHeader("Content-Disposition", "attachment; filename" & someFileName)
Response.AddHeader("Content-Length", someStoredLength)
Response.BinaryWrite(someByteArray)
Response.Flush()
Response.End()
Das Problem ist, dass someStoredLength ist viel größer als die tatsächliche Größe von someByteArray, so dass nur der Kunde dort für die Datei-Download wartete sitzt, während der Browser gerade dreht.
Ich bin Betrachtung nur die AddHeader zu entfernen, die den Inhalt Länge gibt, denn wenn ich das alles gut zu funktionieren scheint, aber ich mache mir Sorgen, dass ich nicht bin etwas zu verstehen.
Ist es ok für mich, dieses AddHeader zu entfernen oder soll ich einen besseren Weg finden, um mit diesem Problem fertig zu werden?
Lösung
Ändern Sie den Content-Length-Zeile wie folgt:
Response.AddHeader("Content-Length", someByteArray.Length.ToString())
Andere Tipps
Ihre Anwendung SOLL (scroll bis zu Content-Length) definiert es jedoch, es ist nicht unbedingt erforderlich.
Hier ist ein anständige Diskussion möglicher Optionen.