문제

레거시 코드를 검토하고 있으며 응답이 무기한으로 앉게하는 버그를 찾았습니다.

기본 아이디어는 다음과 같습니다.

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())

다른 팁

너의 어플리케이션 해야 한다 (내용 길이로 스크롤)를 정의하지만 엄격하게 필요하지 않습니다.

여기에 있습니다 괜찮은 토론 가능한 옵션.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top