2012-05-22 1 views
1

큰 파일 업로드를 처리 할 HttpHandler (.NET Framework 4)를 빌드하려고합니다. 아이디어는 HttpWorkerRequest을 잡고 body-stream을 읽는 것입니다. 나는 HttpWorkerRequest를 사용한다. GetPreloadedEntityBody은 수신 된 HTTP 본문의 첫 번째 청크를 검색합니다. 나는 내 로컬 IIS (윈도우 XP에서 5.1) 또는 Visual Studio를 웹 서버에서 내 웹 사이트를 실행할 때IIS7의 HttpWorkerRequest.GetPreloadedEntityBody Intergated 모드

IServiceProvider provider = (IServiceProvider)context; 
HttpWorkerRequest wr = (HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest)); 
byte[] entityBodyBytes = wr.GetPreloadedEntityBody(); 

이 잘 작동하지만 때를 : 여기에

내가 사전로드 된 개체를 얻는 방법이다 IIS 7 (통합 모드)에서 실행하면 GetPreloadedEntityBody 메서드는 항상 빈 바이트 배열을 반환합니다.

IIS7에서 GetPreloadedEntityBody 메서드의 반환 된 바이트 배열이 비어있는 이유는 무엇입니까?

+0

정확하게 똑같은 문제가 있었지만 IIS 7을 클래식 모드로 전환하여 해결책을 찾았습니다. – Zzz

답변

0

나는 이것에 대해 전문가가 아니지만, 물어볼 때 몸의 어느 것도로드하지 않았기 때문에 생각합니다. GetPreloadedEntityBody()를 호출하기 전에 GetPreloadedEntityBodyLength()> 0인지 확인해보십시오. 0이면 파일 읽기 루프로 바로 뛰어 들어야합니다.