web.config가 원하는 길이의 요청을 허용하도록 구성하는 방법
텍스트 영역 요소의 값으로 파일 클라이언트 쪽을 만들고 싶은 사이트를 만들고 있습니다.
이 작업을 수행할 코드가 있지만 이 오류가 발생합니다.
HTTP 오류 404.15 - 찾을 수 없음 요청 필터링 모듈은 쿼리 문자열이 너무 긴 요청을 거부하도록 구성되었습니다.
제가 어떤 크기의 요청도 처리할 수 있도록 이것을 무시할 수 있는 방법이 있을까요?
그렇지 않다면 filesystem/active x 객체를 사용하지 않고 file client측을 생성할 수 있는 방법이 있습니까?
감사해요.
web.config에 다음을 추가합니다.
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="32768"/>
</requestFiltering>
</security>
</system.webServer>
참조:
http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimits
주석을 반영하도록 업데이트되었습니다.
requestLimitsElement for requestFiltering [IIS 설정 스키마]
web.config에 다음을 추가해야 할 수도 있습니다.
<system.web>
<httpRuntime maxQueryStringLength="32768" maxUrlLength="65536"/>
</system.web>
참조: http Runtime Element(ASP).NET 설정 스키마)
물론 위의 구성 설정에서 숫자(32768 및 65536)는 예시일 뿐입니다.정확한 값을 사용할 필요는 없습니다.
내 경우 (Visual Studio 2012 / IIS Express / ASP)NET MVC 4 앱 / .Net Framework 4.5) 30분간의 시행착오 끝에 실제로 작동한 것은maxQueryStringLength
에 있는 재산<httpRuntime>
태그:
<httpRuntime targetFramework="4.5" maxQueryStringLength="10240" enable="true" />
maxQueryStringLength
기본값:2048
.
자세한 내용은 다음과 같습니다.
제가 설치를 해봤습니다.<system.webServer>
@MattVarblow가 암시하듯이, 하지만 효과가 없었습니다.그리고 이것은 제가 Windows 8이 있는 개발 컴퓨터에서 IIS Express(IIS 8 기반)를 사용하고 있기 때문입니다.
운영 환경에 앱을 배포했을 때(Windows Server 2008 R2 with IIS 7), IE 10은 쿼리 문자열이 긴 AJAX 요청에서 404개의 오류를 반환하기 시작했습니다.그러면 문제가 쿼리 문자열과 관련이 있다고 생각하고 @MattVarblow의 답변을 시도했습니다.방금 IIS 7에서 작동했습니다. :)
IIS 8.5 웹 서버를 실행할 때 이 문제가 발생하면 다음 방법을 사용할 수 있습니다.
먼저 작업 중인 IIS 사이트에서 "필터링 요청" 모듈을 찾은 다음 두 번 클릭합니다.
그런 다음 아래에 표시된 흰색 영역에서 마우스 오른쪽 버튼을 누른 다음 "Edit Feature Settings"(기능 설정 편집)라는 컨텍스트 메뉴 옵션을 클릭해야 합니다.
그런 다음에는 "최대 쿼리 문자열(Bytes)" 값을 2048년에서 5000과 같은 더 적합한 값으로 변경하는 것이 마지막입니다.
확인할 사항: 사이트에서 MVC를 사용하는 경우 로그인 컨트롤러 클래스에 [Authorize]를 추가하면 이 문제가 발생할 수 있습니다.인증되지 않아 로그인 방법에 접근할 수 없어 로그인 방법 --> boom으로 리디렉션됩니다.
또한 ajax call 매개변수에서 큰 문자열을 전달할 때 오류가 발생합니다.
따라서 항상 use type post in ajax를 사용하면 문제가 100% 해결되며 web.config에서 길이를 설정할 필요가 없습니다.
// var UserId= 1000개 사용자 ID 배열
$.ajax({
global: false,
url: SitePath + "/User/getAussizzMembersData",
"data": { UserIds: UserId},
"type": "POST",
"dataType": "JSON"
}}
ASP 웹 응용 프로그램을 IIS 8에 배포하는 데 비슷한 문제가 있었습니다. 이를 해결하기 위해 Matt와 Leniel이 위에서 제안한 대로 했습니다.또한 익명 인증을 활성화하기 위해 내 사이트의 인증 설정을 구성해야 했습니다.그리고 그것은 나에게 효과가 있었습니다.
사용자가 아직 인증되지 않았기 때문에 로그인 페이지의 ActionResult 기능에 [AllowAnonymous]를 추가해야 했습니다.
웹 사이트에서 인증을 사용하고 있지만 IIS에 올바른 인증 방법(예: 기본, 양식 등)이 설정되어 있지 않은 경우그러면 브라우저가 리디렉션 루프에 갇히게 됩니다.그러면 리디렉션 URL이 폭발할 때까지 점점 더 길어집니다.
Visual Studio에서 앱을 실행하는 동안 IIS Express를 사용하는 동안 이 문제가 발생한 사람의 경우, 먼저 응용 프로그램에서 사용 중인 applicationhost.config 파일을 찾아야 합니다.applicationhost.config 파일을 찾는 방법에 대해서는 https://stackoverflow.com/a/41553876/1849880 에서 답변을 참조하십시오.그러면 위에서 설명한 대로 maxQueryString 값을 변경할 수 있습니다.
HTTP 오류 404.15 - 찾을 수 없음 요청 필터링 모듈은 쿼리 문자열이 너무 긴 요청을 거부하도록 구성되었습니다.
이 문제를 해결하려면 소스 코드에서Form
태그에 속성이 있습니다.method
get/set state입니다.
그렇다면.method
속성을 제거해야 합니다.
언급URL : https://stackoverflow.com/questions/11636386/how-to-configure-the-web-config-to-allow-requests-of-any-length
'bestsource' 카테고리의 다른 글
HTML 태그를 제거하지만 내부 HTML은 유지합니다. (0) | 2023.10.21 |
---|---|
ES6 맵 객체를 정렬할 수 있습니까? (0) | 2023.10.21 |
SQL 대신 XML을 언제 사용합니까? (0) | 2023.10.21 |
각도 물질에 다중 선택 옵션을 구현하려면 어떻게 해야 합니까? (0) | 2023.10.21 |
비트 필드에 열거형을 사용해도 안전합니까? (0) | 2023.10.21 |