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
당신은 아마 설정해야합니다 모두 maxRequestLengthmaxAllowedContentLength작업에 그걸 얻기 위해 ... 참조 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.