.Net

.Net core - File Uplad Error 413.1 - Request Entity Too Large

올엠 2020. 11. 5. 22:19
반응형

파일 업로드 기능을 .Net Core로 구현한다면 가장 처음 봉착하는 에러이다.

 

먼저 .Net Core 답게 현재 구동하는 환경이 IIS Express인지 확인한다.

IIS Express로 되어 있다면, .Net core는 자체적으로 웹서비스를 구동할 수 있기 때문에 현재 생성한 프로젝트 명으로 Debug를 변경하고, 다시 테스트를 진행해보자.

 

이제 2가지 방법으로 이를 해결 할 수 있다.

 

1. Controller에 추가

특정 기능만 필요하다면 API Action에 아래 구문을 추가하면 해결 된다.

        [RequestFormLimits(ValueLengthLimit = int.MaxValue, MultipartBodyLengthLimit = int.MaxValue)]
        [DisableRequestSizeLimit]
        [Consumes("multipart/form-data")]
        [HttpPost]
        [ActionName("upload")]
        public async Task<IActionResult> PostAsync(IFormFile file, CancellationToken cancellationToken)

 

2. Global로 적용

전체적으로 적용하고 싶다면 Startup.cs에 아래 구문을 추가하자.

            services.Configure<FormOptions>(x =>
            {
                x.ValueLengthLimit = int.MaxValue;
                x.MultipartBodyLengthLimit = int.MaxValue;
                x.MultipartHeadersLengthLimit = int.MaxValue;
            });

IIS에서 구동해야 한다면...

web.config에 아래 구분을 추가하면 된다.

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="2147483648" />
    </requestFiltering>
  </security>
</system.webServer>
반응형