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

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

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

[ConfigurationPropertyAttribute("maxRequestLength", DefaultValue = )]

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

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



답변

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

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

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


답변

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

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

또는 IIS (7)에서 :

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

답변

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

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


답변

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

<system.web>

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


답변

응용 프로그램 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>


답변

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 오류가 발생 하는 많은 사람들 이 사용합니다. 그래서 나는 여기에 답을 남깁니다.


답변

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를 늘려서 해결해야합니다.