본문 바로가기

개발

[AspNetCore] HTTP Error 404.15 - Not Found 에러발생

728x90
반응형

 

AspNetCore를 이용한 Web 프로젝트 진행 중 DataTables(Grid 컴포넌트) 에서 JSON API를 호출하면 IIS Express 에서 에러발생

에러내용

HTTP Error 404.15 - Not Found

HTTP Error 404.15 - Not Found
쿼리 문자열이 너무 긴 요청을 거부하도록 요청 필터링 모듈이 구성되어 있습니다.

가능성이 높은 원인:
웹 서버에 쿼리 문자열이 너무 긴 요청을 거부하도록 하는 요청 필터링이 구성되어 있습니다.

가능한 해결 방법:
applicationhost.config 또는 web.config 파일에서 configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryString 설정을 확인하십시오.

Detailed Error Information:
Module	   RequestFilteringModule
Notification	   BeginRequest
Handler	   aspNetCore
Error Code	   0x00000000
Requested URL	   https://localhost/List?id=2&searchType=TITLE&searchKeyword=undefined&draw=1&columns%5B0%5D%5Bdata%5D=BoardID&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=... 문자열 생략
Physical Path	   C:\Project\DataTablesList
Logon Method	   아직 결정되지 않음
Logon User	   아직 결정되지 않음

More Information:
이것은 보안 기능이므로 변경 가능한 범위를 완전히 파악하지 못한 경우에는 변경하지 마십시오. 쿼리 문자열이 지정된 값보다 긴 요청을 거부하도록 IIS 서버를 구성할 수 있습니다. 요청의 쿼리 문자열이 구성된 값보다 길면 이 오류가 반환됩니다. 쿼리 문자열의 허용 길이를 늘려야 하는 경우에는 configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryString 설정을 수정하십시오.
View more information »

원인

DataTables의 ServerSide 방식을 이용하여 Grid를 구현하였는데 GET방식으로 API를 호출하면 Request 기본 문자열이 길어서 생기는 문제로 확인

해결방법

WebAPI 프로젝트 > App.Config 파일의 requestLimits/maxQueryString 설정을 추가하면 해결된다.

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="268435456" maxQueryString="20480" />
      </requestFiltering>
    </security>
  </system.webServer>

</configuration>

 

DataTables를 이용한 페이징 구현 중 발생하여 DataTables 문제 인줄 알았으나 IIS Express(App.Config) 설정문제로 확인

에러가 발생할 때는 항상 복합적인 문제로 발생한다.!!!

728x90
반응형