C #으로 된 MVC3 사이트가 있고 JavaScript 함수에서 쿼리 매개 변수가 제공되는 특정보기가 있으며 함수는 다음을 통해 사이트로 리디렉션됩니다.
window.location.href = “../ActionName?” + query_string;
query_string은 JavaScript 함수에 의해 구축 된 동적 쿼리 매개 변수 문자열입니다.
이 이상한 이유는 reportviewer 컨트롤 을 사용해야하기 때문에 동일한 함수가 URL을 ASP.Net 웹 양식으로 전달하는 경우가 있습니다. 대체 작업은이 경우 뷰에 전달하는 일부 매개 변수를 저장하는 것입니다. (말이 안되는 경우 더 자세히 설명 할 수 있음)
액션 메서드에 [Authorize]를 도입 할 때까지 모든 것이 잘 작동합니다. 제자리에 있으면 중단되고,없이 잘 작동하며, 다른 모든 방법에서는 [Authorize]가 잘 작동합니다.
이 경우 전체 URL은 길이가 966 자입니다. 연구 결과 maxQueryStringLength 값은 기본적으로 2048이지만 정수 유형의 값으로 재정의 할 수 있는 것으로 보이 므로 grins를 위해 다음을 추가했습니다.
<security>
<requestFiltering>
<requestLimits maxQueryString="2048"></requestLimits>
</requestFiltering>
</security>
키 아래의 웹 구성 파일에 대한 키.
거기에는 기쁨이 없어서 우스꽝스러워서 4096으로 만들었지 만 여전히 기쁨이 없었습니다.
이제 전체 URL이 966 자이므로 권한 부여 속성이 1082-3130자를 추가 할 수는 없으므로 실제로 오류가 무엇인지 또는 설정이 적용되지 않는 이유를 어떻게 확인할 수 있습니까?
VS2010 Pro SP1
답변
승인되지 않은 요청이 들어 오면 전체 요청이 URL로 인코딩되고 승인 양식에 대한 요청에 쿼리 문자열로 추가되므로 상황에 따라 문제가 발생할 수있는 위치를 알 수 있습니다.
MSDN에 따르면 web.config에서 maxQueryStringLength를 재설정하기 위해 수정해야하는 올바른 요소는 <httpRuntime>
요소 내부의 <system.web>
요소입니다. httpRuntime 요소 (ASP.NET 설정 스키마)를 참조하십시오 . 해당 요소를 수정 해보십시오.
답변
web.config
프로젝트 루트 의 system.web
노드 아래 :
<system.web>
<httpRuntime maxUrlLength="10999" maxQueryStringLength="2097151" />
...
또한 system.webServer
노드 아래에 이것을 추가해야 하거나 긴 쿼리 문자열에 대한 보안 오류가 발생했습니다.
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxUrl="10999" maxQueryString="2097151" />
</requestFiltering>
</security>
...
답변
이 문제가 발생할 수 있고 위의 옵션 중 하나로 해결되지 않는 다른 사람에게는 이것이 저에게 효과적이었습니다.
1. Click on the website in IIS
2. Double Click on Authentication under IIS
3. Enable Anonymous Authentication
우리가 자체 인증을 사용하고 있었기 때문에 이것을 비활성화했지만 동일한 문제가 발생했으며 수락 된 답변이 어떤 식 으로든 도움이되지 않았습니다.
답변
나는 datatables.net을 사용 하여이 오류가 있습니다.
DataTable ()의 te 속성에서 기본 ajax Get to POST 변경을 수정했습니다.
"ajax": {
"url": "../ControllerName/MethodJson",
"type": "POST"
},
답변
