[asp.net] 최대 요청 길이를 초과했습니다.

내 사이트에서 비디오를 업로드하려고 할 때 최대 요청 길이를 초과했습니다 오류가 발생 합니다.

이 문제를 어떻게 해결합니까?



답변

응용 프로그램을 호스팅하기 위해 IIS를 사용하는 경우 기본 업로드 파일 크기는 4MB입니다. 늘리려면 아래 섹션을 사용하십시오 web.config

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

IIS7 이상에서는 아래 줄을 추가해야합니다.

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

참고 :

  • maxRequestLength킬로바이트 로 측정
  • maxAllowedContentLength바이트 단위 로 측정

이것이이 구성 예제에서 값이 다른 이유입니다. (둘 다 1GB에 해당합니다.)


답변

나는 그것이 여기에 언급되지 않았다고 생각하지만, 이것을 작동시키기 위해서는 web.config 에이 두 값을 모두 제공해야했습니다.

system.web

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

그리고 system.webServer

<security>
    <requestFiltering>
        <requestLimits maxAllowedContentLength="1073741824" />
    </requestFiltering>
</security>

중요 :이 두 값이 일치해야합니다. 이 경우 내 최대 업로드는 1024MB입니다.

maxRequestLength에는 1048576 킬로바이트 가 있으며 maxAllowedContentLength에는 1073741824 바이트가 있습니다.

나는 그것이 명백하다는 것을 알고 있지만 간과하기 쉽습니다.


답변

이 변경 사항을 전체 사이트가 아닌 업로드에 사용될 것으로 제한하는 것이 좋습니다.

<location path="Documents/Upload">
  <system.web>
    <!-- 50MB in kilobytes, default is 4096 or 4MB-->
    <httpRuntime maxRequestLength="51200" />
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- 50MB in bytes, default is 30000000 or approx. 28.6102 Mb-->
        <requestLimits maxAllowedContentLength="52428800" />
      </requestFiltering>
    </security>
  </system.webServer>
</location>


답변

누군가가이 예외를 처리하고 사용자에게 의미있는 설명 ( “너무 큰 파일을 업로드하고 있습니다”과 같은)을 보여줄 방법을 찾고있는 경우를 대비하여 :

//Global.asax
private void Application_Error(object sender, EventArgs e)
{
    var ex = Server.GetLastError();
    var httpException = ex as HttpException ?? ex.InnerException as HttpException;
    if(httpException == null) return;

    if (((System.Web.HttpException)httpException.InnerException).WebEventCode == System.Web.Management.WebEventCodes.RuntimeErrorPostTooLarge)
    {
        //handle the error
        Response.Write("Too big a file, dude"); //for example
    }
}

(ASP.NET 4 이상 필요)


답변

최대 요청 크기는 기본적으로 4MB (4096 KB)

여기에 설명되어 있습니다 .

위의 기사는이 문제를 해결하는 방법도 설명합니다 🙂


답변

구성 파일을 업데이트 할 수 없지만 파일 업로드를 처리하는 코드를 제어하는 ​​경우 HttpContext.Current.Request.GetBufferlessInputStream(true) .

true가치disableMaxRequestLength 매개 변수는 구성 요청 제한을 무시하는 프레임 워크를 알려줍니다.

자세한 설명은 https://msdn.microsoft.com/en-us/library/hh195568(v=vs.110).aspx를 방문 하십시오.


답변

web.config에는 업로드 된 파일의 최대 크기를 구성하는 요소가 있습니다.

<httpRuntime
    maxRequestLength="1048576"
  />