2013-03-26 1 views
3

이상한 오류가 발생했습니다 (별로 이상하지는 않습니다. 아마도 최대 길이 제한 때문에 모를 수도 있습니다). 저는 직원 용 맞춤 검색 서비스를 렌더링하는 Custom Server Control에 대해 연구하고 있습니다. 직원들이 성공적으로 검색되면 json의 WCF 서비스에서 전체 객체 (List)를 가져 와서 숨겨진 필드에 문자열을 유지하고 json 문자열을 가져와 객체로 역 직렬화하는 코드를 다시 게시합니다. 이제 2000 개체까지, 그것은 완벽하게 작동했지만, 검색 기준 2000 이상 가져 오는 시작했을 때, 다음과 같은 오류가ASP.net에서 숨겨진 필드 길이에 제한이 있습니까

Uncaught Sys.WebForms.PageRequestManagerServerErrorException: Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. The status code returned from the server was: 0 

을 발생하는 시작했다 나뿐만 아니라 코드를 디버깅,하지만 C# 코드도 하나를 잡기되지 않았습니다 전화. 또한 json 문자열에 1000 개의 레코드가있는 여러 개의 숨겨진 필드에 json 문자열을 유지하려고했습니다. 그러나 여전히 오류는 계속 발생합니다. 이것은 양식에 최대 크기의 일종의 제한이 있음을 알려줍니다. 이 문제에 대한 해결책을 얻을 수 있습니까? 아니면 ID를 코드로 보내고 거기에서 객체를 가져와야합니까? 실제로 서비스 URL은 동적 인 것으로 가정하고 호스트 응용 프로그램에서 제공하므로 C# 수준의 바인딩 서비스를 소개하지 않으려 고합니다.

+0

나는 이것이 최선의 방법이 아닐 것이라고 제안합니다. 무언가를 검색 할 때 x (100 명) 이상의 사람들을 실제로 보여주고 싶습니까? 사용자가 5,000 이상의 페이지를 스크롤하지 않으므로 더 이상 페이징해야합니다. – Belogix

+0

아니, 아니, 아니, 당신은 나를 잡아, 나는 거기에 페이지에서조차되지 않는 검색 기준에 빠지는 모든 직원을 선택하는 옵션이 있다는 것을 의미했습니다 (페이징은 스크롤을 통해 구현됩니다). 선택한 직원은 사용자 지정 컨트롤에 의해 노출 된 공용 속성에서 사용할 수 있습니다. –

답변

4

ASP.NET에는 최대 요청 크기가 있습니다. 즉, 기본값은 4MB이며, documentation에 따라 달라집니다. 당신은 당신이 그 한계를 타격 할 수 있다고 생각하면 <system.web> 태그 내부에 web.config 파일에 다음을 추가하여 늘릴 수 있습니다

<httpRuntime maxRequestLength="x"> 

를 x는 킬로바이트에서 원하는 최대입니다. 예를 들어 10240은 10MB입니다.

1

맵핑을 위해 많은 양의 데이터를 앞뒤로 전달할 때이 문제가 발생했습니다. 데이터가 너무 커지면 데이터가 손실됩니다. web.config에 약간의 변경을했습니다.

<appSettings>  
    <add key="aspnet:MaxHttpCollectionKeys" value="5000" /> 
    <add key="aspnet:MaxJsonDeserializerMembers" value="5000" /> 
</appSettings> 
관련 문제