Click or drag to resize

대용량 파일 업로드

웹액세스 내에 파일 업로드가 적용되어 있는 곳은 메일 쓰기, 게시판 글 쓰기, 파일함에 파일 추가 등입니다. 이 곳에 파일을 업로드할 경우 파일이 일정 크기 이상일 경우 업로드가 되지 않고 오류가 발생할 수 있습니다. 이는 웹액세스, ASP.NET, IIS의 다양한 제한 조건에 의해 발생한 것으로 제한 조건을 조절해 해결할 수 있습니다.

웹액세스 7.4.3.90 이상 버전

웹액세스 7.4.3.90부터는 HTML5 기반의 chunked upload를 지원하므로 IIS 설정에 관계없이 업로드 용량을 무제한으로 늘일 수 있습니다.

웹액세스 루트 폴더에 있는 Web.config 파일을 열어 appSettings에 있는 MaxMailAttachSize, MaxBoardAttachSize, MaxApprovalAttachSize의 값을 원하는 만큼 지정합니다. 아래는 3GB를 지정한 예입니다.

Web.config
<appSettings>
    ......
  <add key="MaxMailAttachSize" value="3221225472" />
  <add key="MaxBoardAttachSize" value="3221225472" />
  <add key="MaxApprovalAttachSize" value="3221225472" />
  ......
</appSettings>

웹액세스 7.4.3.90 미만 버전에서는 아래의 설정 변경에 따라 최대 2GB까지 업로드할 수 있습니다.

웹액세스 제한 해제

메일 작성시 첨부할 수 있는 파일 최대 크기, 게시판에 글과 함께 첨부할 수 있는 파일 최대 크기, 전자 결재 문서에 첨부할 수 있는 파일 최대 크기를 명시할 수 있습니다.

웹액세스 루트 폴더에 있는 Web.config 파일을 열어 appSettings에 있는 MaxMailAttachSize, MaxBoardAttachSize, MaxApprovalAttachSize의 값을 IIS 업로드가 허용하는 최대 값 2147483647로 지정합니다.

Web.config
<appSettings>
    ......
  <add key="MaxMailAttachSize" value="2147483647" />
  <add key="MaxBoardAttachSize" value="2147483647" />
  <add key="MaxApprovalAttachSize" value="2147483647" />
  ......
</appSettings>

ASP.NET 제한 해제

ASP.NET 엔진 역시 ASP.NET 웹사이트 보호를 위해 처리할 수 있는 HTTP 업로드 크기를 제한하고 있습니다. system.web 태그 아래에 존재하는 httpRuntime 태그를 찾습니다. maxRequestLength는 ASP.NET이 받을 수 있는 최대 HTTP 요청 크기로 KB 단위로 지정합니다. 값이 지정되어 있지 않을 경우 4096으로 최대 4MB까지만 받을 수 있습니다. 최대 값인 2GB를 받기 위해서는 2097152을 지정합니다.

Web.config
<system.web>
    ......
    <httpRuntime maxRequestLength="2097152" executionTimeout="600" requestValidationMode="2.0" />
    ......
</system.web>

IIS 요청 필터링 해제

윈도우 2008 부터 도입된 IIS 7.0에는 요청 필터링(Request Filtering) 기능이 추가되었습니다. 이 기능은 IIS를 보호하기 위해 HTTP 요청을 다양한 방식으로 차단하는 것으로 최대 요청 크기를 30000000 바이트(28.6MB)로 제한하고 있습니다.

Web.config 파일에서 system.webServe/security/requestFiltering/requestLimits 태그를 찾은 후 maxAllowedContentLength에 지정 가능한 최대 값인 2147483648(2GB)을 지정합니다.

Web.config
<system.webServer>    
    ......
    <security>
      <requestFiltering>
         <requestLimits maxAllowedContentLength="2147483648" />
      </requestFiltering>
    </security>
    ......
</system.webServer>