2010-07-09 4 views
0
나는 문제가 여기에 기록 겪고있어

:IE 6와 인코딩 청크 분할 문제

http://support.microsoft.com/kb/914453

가 에 전송 청크 분할 인코딩을 사용하는 웹 서버에서 사용자 액세스 웹 응용 프로그램 또는 웹 사이트 Microsoft Windows XP 기반 컴퓨터의 Microsoft Windows Server 2003 기반 또는 그런 다음 브라우저 또는 웹 응용 프로그램이 응답하지 않습니다. Wininet.dll 파일은 초기 윈속 데이터 중 데이터의 불완전한 청크를 수신 조작을 받으면

이 문제가 발생한다. 이 문제가 발생하면 두 번째 Winsock 데이터 수신 작업은 청크 토큰 만 읽습니다. 예를 들어, 두 번째 Winsock 데이터 수신 작업은 소켓 에서 캐리지 리턴 줄 바꿈 (CRLF) 만 읽을 수 있습니다. 그런 다음 Wininet.dll 파일 은 Winsock Select 함수를 30 초 동안 계속 호출합니다. 더 많은 데이터를 받으려면 파일이 대기 중입니다. 그러나 데이터가 도착하지 않으면 브라우저 또는 웹 응용 프로그램이 응답을 중지합니다.

데이터베이스에서 파일을 검색하기 위해 구현 한 HttpHandler에서 문제가 발생합니다. 관련 코드 : I 동적 압축을 해제하거나하지 않는 압축 파일 형식으로 .axd 지정하여 IIS 6 수준에서 청크 분할 인코딩을 해제 할 수 있습니다,하지만 난 그렇게하지 않으려는 것

var buffer = GetSomeByteArray(); 
context.Response.Clear(); 
context.Response.ContentType = type; 
context.Response.BinaryWrite(buffer);       
context.Response.End(); 

. 제 질문은, 내 코드에 버그가 있거나 제가 브라우저에서 불완전한 청크를받지 못하게해야한다는 것입니다.

+0

ASP/IIS는 수행하지 않지만 JSP/Servlet의 경우 청크 인코딩은 응답을 보내기 전에 콘텐츠 길이 헤더를 설정하지 않은 경우에만 사용됩니다. 콘텐츠 길이 헤더를 설정하면 스트리밍 모드가 사용됩니다. ASP/IIS 앱이 콘텐츠 길이를 미리 설정하는 데 도움이되는지 확인하십시오. – BalusC

+0

IIS는 '동적'콘텐츠를 압축해야 할 때 청크 인코딩을 강제로 수행하므로 캐시되지 않으므로 압축이 즉시 수행됩니다. 여기이 문제는 압축이 아닙니다. 이것이 바로 청크 인코딩을 유발하는 것입니다. 사실, 실제로 내 코드에서 Content-Length 헤더를 추가하는 줄이 있지만 IIS는 청크 인코딩을 사용할 때 Content-Length 헤더를 보내지 않습니다. 그 이유는 이것이 사양을 위반하기 때문입니다. – Chris

답변

0

코드가 좋습니다. 이 파일의 크기는 얼마입니까? 콘텐츠 처리 사용 : 첨부 파일은 어떻게됩니까? 또한 Content-Type은 무엇입니까?

+0

http 핸들러를 사용하여 페이지에 인라인으로 표시 될 이미지를 되돌려 보냅니다. 첨부 파일로 다시 보내면 작동하지 않습니다. 콘텐츠 유형은 현재 이미지/PNG이지만 이미지/JPEG 또는 이미지/GIF 일 수도 있습니다. – Chris

+0

네, 알았습니다. 그렇다면 코드에는 아무런 이상이 없습니다. –