2008-10-15 5 views
8

플랫폼 : IIS 6, ASP.Net 2.0 (.Net 3.5), Server 2003.정말 큰 파일 업로드를 처리하도록 IIS를 어떻게 구성합니까?

사용자의 파일을 수락하고 처리 한 결과를 반환하는 응용 프로그램을 작성하고 있습니다. 파일은 ASP.Net 웹 양식에 HTTP POST를 사용하여 업로드됩니다. 응용 프로그램에서 일부 대형 파일 (수백 MB)이 필요합니다.

좋은 진행률 표시 줄을 사용하여 업로드를 수행하기 위해 SWFUpload를 사용하고 있는데, 업로드 승인자 페이지를 가리키는 표준 HTML 양식을 사용하여 무시할 때 동일한 오류가 발생하기 때문에 문제가 발생하지 않습니다. . 진행률 표시 줄을 사용하면 업로드가 100 %까지 지속 된 다음 실패합니다. 표준 양식을 사용하면 동작이 동일하게 나타납니다.

지금은 약 150MB의 파일을 업로드하는 데 문제가 있습니다. 내가 찾을 수있는 모든 설정을 변경했지만 여전히 운이 없다. 추가 된이 내부 system.web :이 Machine.config에서

<httpRuntime executionTimeout="3600" maxRequestLength="1536000"/> 

: system.web 내부의 Web.config에서

: 여기

는 지금까지 변경 한 내용의 요약이다 변경 :

<processModel autoConfig="true" /> 

에 :

및 MetaBase.xml의에서: 은 변경 :

AspMaxRequestEntityAllowed="204800" 

에 :

AspMaxRequestEntityAllowed="200000000" 

업로드가 실패

, 나는 IIS에서 404 오류가 발생합니다. 내 웹 양식이 처리를 시작하지 않거나 적어도 Page_Load 이벤트에 적용되지 않습니다. 나는 그 핸들러의 시작 부분에 예외를 던졌고 큰 파일에서는 전혀 실행되지 않습니다.

모든 것이 작은 파일 (약 5.5MB까지 테스트)에서 잘 작동합니다. 나는 어떤 파일 크기가 한계인지 정확히 모르겠다. 그러나 내 제한은 클라이언트가 업로드해야 할 가장 큰 파일이 아니기 때문에 150MB보다 높아야한다는 것을 알고있다.

아무도 도와 줄 수 있습니까? 우리는이 기술 자료 문서에 따라 버퍼 크기 제한을 늘 가지고이 문제에 실행하면

답변

4

URLScan은 내가 URLScan을가 글로벌 ISAPI 필터이기 때문에, 우리의 서버에서 실행중인 내 개인 웹 사이트에서 실행되지 않았 음을 인식하지 않았다. 모든 웹 사이트에서 활성화, 그리고 그것의 자신의 요청 엔티티 길이 제한이 있습니다.

참고 :. 오른쪽 속성을 IIS 관리자에서 웹 사이트 폴더를 클릭하고 클릭 한 다음 ISAPI 필터 탭에

2

는 : http://support.microsoft.com/kb/944886/en-us

나는이 ASP를 언급 알아,하지만 난 그것뿐만 아니라 ASP.NET 근무 믿습니다.

편집 :
http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx

+0

첫 번째 문서는 다운로드가 아닌 업로드 관련이있다, 그러나 나는 시도 어쨌든 성공하지 못했습니다. Jon Galloway 기사는 위에서 언급 한 내용을 다룹니다. –

+1

네 질문을 다시 읽고 첫 번째 링크가 잘못되었다는 것을 알았지 만, 나는 그걸 전부 꺼내는 것에 대해 이상하게 느꼈다. 그래서 조금 더 살펴보고 두 번째 링크를 수정으로 게시했습니다. 두 번째 링크가 도움이되기를 바랍니다. –

1

404 누락를 Page_Load : 전체 POST는 서버에 일단 IIS는 요청을 처리 할 수있는 다음 문제에 더 관련 및 기타 옵션을 제공 할 수있는 링크입니다. 따라서 POST가 실패하여 (크기 때문에) 페이지의 이벤트를 실행할 수 없습니다.

NeatUpload http://www.brettle.com/neatupload을 시도해 볼 수 있습니다. 매뉴얼에서 : "기본적으로 NeatUpload는 업로드 크기를 직접 제한하지 않습니다."

0

을 또한 사실이 포함 NeatUpload에 비해 여러 가지 장점을 가지고있는 Velodoc XP Edition을 시도 할 수 있습니다, 글로벌 ISAPI 필터를 찾습니다 ASP.NET Ajax 확장을 사용합니다. 자세한 내용은 the Velodoc web site을 참조하십시오.

0

당신 말 :

하지만 1536000은 1.5MB입니다?

+0

크기는 킬로바이트 단위이므로 실제 크기는 1.5GB입니다. –

1

(Google 직원주의 사항) : IIS7에 대한

가의 Web.config에 아래 추가

은 (내가 <system.serviceModel> 위에 추가) :

<system.webServer> 
     <security> 
      <requestFiltering><requestLimits maxAllowedContentLength="262144000" /></requestFiltering> <!-- maxAllowedContentLength is in bytes. Defaults to 30,000,000 --> 
     </security> 
</system.webServer> 
관련 문제