È necessario impostare la lunghezza del contenuto nell'intestazione della mia risposta?
Domanda
Sto rivedendo alcuni codici legacy e ho trovato un bug che causa la permanenza indefinita della risposta.
Ecco l'idea di base:
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()
Il problema è che someStoredLength è molto più grande della dimensione effettiva di someByteArray, quindi il client rimane seduto in attesa del download del file mentre il browser gira.
Sto pensando di rimuovere solo AddHeader che specifica la lunghezza del contenuto, perché quando lo faccio sembra che tutto funzioni correttamente, ma sono preoccupato di non capire qualcosa.
Va ??bene per me rimuovere questo AddHeader o dovrei trovare un modo migliore per affrontare questo problema?
Soluzione
Modifica la riga Lunghezza contenuto in quanto segue:
Response.AddHeader("Content-Length", someByteArray.Length.ToString())
Altri suggerimenti
La tua applicazione DOVREBBE (scorrere fino alla lunghezza del contenuto), tuttavia, non è strettamente necessario.
Ecco un discussione decente sulle possibili opzioni.