ASP.NET에서 최대 업로드 파일 크기를 늘리는 방법은 무엇입니까?


238

ASP.NET에서 파일 업로드를 제외한 양식이 있습니다. 최대 업로드 크기를 4MB 기본값 이상으로 늘려야합니다.

msdn 에서 아래 코드를 참조하는 특정 위치를 찾았습니다 .

[ConfigurationPropertyAttribute("maxRequestLength", DefaultValue = )]

실제로 어떤 참조도 그것을 사용하는 방법을 설명하지 않으며, 나는 성공하지 못한 채 여러 가지를 시도했습니다. 파일 업로드를 요청하는 특정 페이지에 대해서만이 속성을 수정하고 싶습니다.

이것이 올바른 경로입니까? 그리고 이것을 어떻게 사용합니까?


호스트 제한이 아닌 코드 제한입니까? IIS에도 한계가 있습니다.
— MrChrister

나는 그것이 .Net 제한이라고 확신했다. 아래 답변이 저에게 효과적이었습니다.
— Eddie

답변:


406

이 설정은 web.config 파일로 이동합니다. 그것은 전체 응용 프로그램에 영향을 미칩니다 ... 나는 당신이 페이지 당 설정할 수 있다고 생각하지 않습니다.

<configuration>
  <system.web>
    <httpRuntime maxRequestLength="xxx" />
  </system.web>
</configuration>

"xxx"는 KB입니다. 기본값은 4096 (= 4MB)입니다.


6
이것은 사이트 전체에서 일하게했습니다. 지금은 10240 (또는 10MB)으로 설정했습니다. 감사!
— Eddie

12
IIS7 +를 실행 중이고 작동하지 않는 경우 내 답변을 참조하십시오.
— 4imble

이것을 하나의 컨트롤러로 제한 할 수 있습니까?
— 기예르모 바리 니

@ Eddie 두 개의 web.config 파일이 있는데 둘 다 사용했지만 작동하지 않습니다. 내가 어떻게 해 ?
— Ahmad

2
이것은 특정 경로에서도 가능합니다. <location path = "Api / Controller"> <system.web> <authorization> <allow users = "*"/> </ authorization> <httpRuntime maxRequestLength = "102400"/> </system.web> </ location> (권한 부여 태그가 필요하지 않음)
— nios

182

IIS 7 이상 및 httpRuntime maxRequestLength 설정을 추가하려면 다음을 추가해야합니다.

  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="52428800" /> <!--50MB-->
      </requestFiltering>
    </security>
  </system.webServer>

또는 IIS (7)에서 :

  • 대용량 파일 업로드를 허용 할 웹 사이트를 선택하십시오.
  • 메인 창에서 '요청 필터링'을 두 번 클릭하십시오.
  • "기능 설정 편집"을 선택하십시오.
  • "최대 허용 컨텐츠 길이 (바이트)"수정

나는 킬로바이트에 대해 잊었다 : p
— Andrew Myhre

10
당신은 아마 설정해야합니다 모두 maxRequestLength 와 maxAllowedContentLength작업에 그걸 얻기 위해 ... 참조 stackoverflow.com/questions/6327452/...
— MikeM

7
@AndrewMyhre maxAllowedContentLength는 KB가 아닌 바이트 단위입니다. Microsoft 문서에 따르면 기본값은 30MB입니다.
— Dan Randolph

1
에 설명 된대로 @DanRandolph 실제로 기본값은 30,000,000 (약 28.6MB)입니다 iis.net/configreference/system.webserver/security/...
— aaaantoine

두 설정이 모두 필요합니다.
— mohrtan

74

업로드 파일의 크기 제한을 늘리려면 두 가지 방법이 있습니다

1. IIS6 이하

기본적으로 ASP.Net에서 서버에 업로드 할 파일의 최대 크기는 약 4MB 입니다. web.config 에서 maxRequestLength 속성 을 수정 하여이 값을 늘릴 수 있습니다 .

기억하십시오 : maxRequestLenght는 KB입니다

예 : 업로드를 15MB로 제한하려면 maxRequestLength를“15360”(15 x 1024)으로 설정하십시오.

<system.web>
   <!-- maxRequestLength for asp.net, in KB --> 
   <httpRuntime maxRequestLength="15360" ></httpRuntime> 
</system.web>

2. IIS7 이상

files.IIS7을 업로드 여기에 사용되는 약간 다른 방법이 도입 모듈 필터링 요청을 하는 방식 파이프 라인의 작품이 가치를 IIS 것을 (이다 .Which이 ASP.Net.Means 전에 실행을 Length 요청 헤더 ) 먼저 ASP.NET 값 (체크 maxRequestLength의 ) 확인됩니다. maxAllowedContentLength 속성의 기본값은 28.61MB 입니다. 동일한 web.config 에서 두 속성을 수정 하여이 값을 늘릴 수 있습니다 .

기억하십시오 : maxAllowedContentLength는 바이트입니다

예 : 업로드를 15MB로 제한하려면 maxRequestLength를 "15360"으로 설정하고 maxAllowedContentLength를 "15728640"(15 x 1024 x 1024)으로 설정하십시오.

<system.web>
   <!-- maxRequestLength for asp.net, in KB --> 
   <httpRuntime maxRequestLength="15360" ></httpRuntime> 
</system.web>

<system.webServer>              
   <security> 
      <requestFiltering> 
         <!-- maxAllowedContentLength, for IIS, in bytes --> 
         <requestLimits maxAllowedContentLength="15728640" ></requestLimits>
      </requestFiltering> 
   </security>
</system.webServer>

MSDN 참조 링크 : https://msdn.microsoft.com/en-us/library/e1f13641(VS.80).aspx


17

web.config 의이 줄이 최대 업로드 크기를 설정한다고 생각합니다.

<system.web>

        <httpRuntime maxRequestLength="600000"/>
</system.web>

하루의 절반을 보낸 후 이것이 나를 도왔습니다! 고마워 !!!
— Sagar Khatri

13

응용 프로그램 web.config에서 최대 2GB 제한 :

<system.web>
  <compilation debug="true" targetFramework="4.5" />
  <httpRuntime targetFramework="4.5" maxRequestLength="2147483647" executionTimeout="1600" requestLengthDiskThreshold="2147483647" />
</system.web>

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="2147483647" />
    </requestFiltering>
  </security>
</system.webServer>

7

Windows 2003 / IIS 6.0 인 경우 C : \ windows \ system32 \ inetsrv \ 폴더에있는 metabase.xml 파일에서 AspMaxRequestEntityAllowed = "204800"을 확인하십시오 .

대부분의 사용자에게는 기본값 인 "204800"(~ 205Kb)이 너무 낮습니다. 값을 최대 값으로 변경하십시오.

파일을 편집 한 후 저장할 수 없으면 ISS 서버를 중지하거나 파일을 편집 할 수 있도록 서버를 활성화해야합니다.

대체 텍스트
(출처 : itmaskinen.se )

편집 : 나는 질문을 올바르게 읽지 못했습니다 (webconfig에서 maxrequest를 설정하는 방법). 그러나이 정보는 다른 사람들에게 방해가 될 수 있습니다. 사이트를 win2000-server에서 win2003으로 옮기고 업로드 기능이 작동하고 갑자기 Request.BinaryRead Failed 오류가 발생 하는 많은 사람들 이 사용합니다. 그래서 나는 여기에 답을 남깁니다.


5

win 2008 IIS 서버에서 동일한 문제가 발생했습니다. web.config에서이 구성을 추가하는 문제를 해결했습니다.

<system.web>
    <httpRuntime executionTimeout="3600" maxRequestLength="102400" 
     appRequestQueueLimit="100" requestValidationMode="2.0"
     requestLengthDiskThreshold="10024000"/>
</system.web>

requestLengthDiskThreshold 기본적으로는 내 응용 프로그램에 너무 작은, 그래서 80000 바이트입니다. requestLengthDiskThreshold는 바이트 단위로 측정되며 maxRequestLength는 KB 단위로 표시됩니다.

응용 프로그램이 System.Web.UI.HtmlControls.HtmlInputFile서버 구성 요소를 사용중인 경우 문제점이 있습니다. requestLengthDiskThreshold를 늘려서 해결해야합니다.


1
msdn.microsoft.com/en-us/library/e1f13641(v=vs.100).aspx 에 따르면 "입력 스트림 버퍼링 임계 값의 한계를 킬로바이트 단위로 지정합니다.이 값은 maxRequestLength 특성을 초과하지 않아야합니다." 요청 길이와 같아야합니까?
— Jeff

예 @Jeff, requestLengthDiskThreshold의 값은 maxRequestLength보다 작아야하지만 첫 번째는 바이트로 표시됩니다. requestLengthDiskThreshold가 maxRequestLength보다 큰 경우 ConfigurationErrorsException이 발생하므로 올바른 값을 직접 테스트 할 수 있습니다. forums.asp.net/t/…
— Massimo Zerbini

4

Framework 4.6을 사용하는 경우

<httpRuntime targetFramework="4.6.1" requestValidationMode="2.0" maxRequestLength="10485760"  />

4

최대 파일 크기는 단일 MVC 컨트롤러 또는 동작으로 제한 될 수 있습니다.
이를 위해 web.config <location> 태그를 사용할 수 있습니다.

<location path="YourAreaName/YourControllerName>/YourActionName>">
  <system.web>
    <!-- 15MB maxRequestLength for asp.net, in KB 15360 -->
    <httpRuntime maxRequestLength="15360" />
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- 15MB maxAllowedContentLength, for IIS, in bytes 15728640 -->
        <requestLimits maxAllowedContentLength="15728640" />
      </requestFiltering>
    </security>
  </system.webServer>
</location>

또는 해당 항목을 영역의 web.config에 추가 할 수 있습니다.


요청 크기를 확인하는 데 더 안전하므로 허용되는 답변 대신 더 높아야합니다.
— Jonathan Ortega

4

나는 그것이 오래된 질문이라는 것을 안다.

그래서 이것은 당신이해야 할 일입니다.

web.config 파일에서 다음을 추가하십시오 <system.web>.

<!-- 3GB Files / in kilobyte (3072*1024) -->
<httpRuntime targetFramework="4.5" maxRequestLength="3145728"/>

그리고 이것은 아래에 있습니다 <system.webServer>:

<security>
    <requestFiltering>

      <!-- 3GB Files / in byte (3072*1024*1024) -->
      <requestLimits maxAllowedContentLength="3221225472" />

    </requestFiltering>
</security>

주석에서 이것이 어떻게 작동하는지 알 수 있습니다. 하나는 sie를 바이트 단위로, 다른 하나는 킬로바이트 단위를 가져야합니다. 희망이 도움이됩니다.


2

응용 프로그램 web.config 파일에 해당 코드 블록을 작성할 수 있습니다.

<httpRuntime maxRequestLength="2048576000" />
<sessionState timeout="3600"  />

이 코드를 작성하면 지금보다 더 큰 파일을 업로드 할 수 있습니다


0

공유 점을 사용하는 경우 관리 도구를 사용하여 최대 크기를 구성해야합니다. kb925083


0

ASP 업로드 제어를 위해 파일 크기 를 늘리는 방법에 대한 블로그 게시물이 있습니다 .

게시물에서 :

기본적으로 FileUpload 컨트롤을 사용하면 최대 4MB 파일을 업로드 할 수 있으며 실행 시간 제한은 110 초입니다. 이러한 속성은 web.config 파일의 httpRuntime 섹션에서 변경할 수 있습니다. maxRequestLength 속성은 업로드 할 수있는 최대 파일 크기를 결정합니다. executionTimeout 속성은 최대 실행 시간을 결정합니다.


0

로컬 컴퓨터에서 작동하고 IIS에서 배포 한 후에도 작동하지 않으면 (Windows Server 2008 R2 사용) 솔루션이 있습니다.

IIS (inetmgr) 열기 웹 사이트로 이동 오른쪽에서 컨텐츠 (요청 필터링)로 이동 기능 설정 편집으로 이동 최대 컨텐츠 크기를 (필요한 바이트 수)로 변경하십시오. 다음 스레드 http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits 에서 도움을받을 수도 있습니다 .


당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.