응답 헤더에서 컨텐츠 길이를 설정해야합니까?
문제
레거시 코드를 검토하고 있으며 응답이 무기한으로 앉게하는 버그를 찾았습니다.
기본 아이디어는 다음과 같습니다.
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()
문제는 SomeStoredLength가 실제 크기의 SomeByTearRay보다 훨씬 크다는 것입니다. 따라서 클라이언트는 브라우저가 회전하는 동안 파일 다운로드를 기다리고 있습니다.
컨텐츠 길이를 지정하는 애드 헤더를 제거하는 것만 고려하고 있습니다.해야 할 때 모든 것이 잘 작동하는 것처럼 보이지만 무언가를 이해하지 못할까 걱정하고 있습니다.
이 애드 헤더를 제거해도 괜찮습니까? 아니면이 문제를 처리하는 더 좋은 방법을 찾아야합니까?
해결책
컨텐츠 길이 줄을 다음으로 변경하십시오.
Response.AddHeader("Content-Length", someByteArray.Length.ToString())
제휴하지 않습니다 StackOverflow