2011-10-28 4 views
1

텍스트 필드 (AutoCompleteExtender)에서 자동 완성을 위해 Microsoft ASP.Net AJAX 프레임 워크를 사용합니다. json으로 JavaScriptSerializer를 사용하여 직렬화 또는 직렬화 복원시에JSON JavaScriptSerializer를 사용하여 직렬화 또는 비 직렬화 중에 오류가 발생했습니다.

오류 :

나는 오류를 받고 있어요. 문자열의 길이가 maxJsonLength 등록 정보에 설정된 값을 초과합니다. 이 오류에 대한

몇 가지 이상한 일 :

  • 내 솔루션 반환 아무것도 모든 단일 웹 서비스 (나는 빈 배열을 반환하도록 변경) 할 때 오류도 발생합니다;
  • web.config에서 jsonSerialization maxJsonLength는 최대 값 2147483644로 설정되며이 페이지의 웹 서비스는 몇 가지 결과를 반환합니다.
  • 오류의 원인은 자바 스크립트 함수에 있지만 함수는 실행되지 않으므로 웹 서비스는 실제로 호출되지 않습니다.
  • 모든 AutoCompleteExtender와 페이지에서 웹 서비스에 대한 모든 호출을 삭제하면 나에게 aspx 안에 "end if"에 오류를 던지기 시작합니다. aspx에서 모든 "If"를 제거하면, 이유를 알리지 않고 충돌합니다. 재미 있습니다!

<script type="text/javascript"> 
    var tbEntrIdFonctionItemSelected = function(sender, e) { 
     $get('<%=Me.FormViewContact.FindControl("hdn_AgenceIdFonctionSearch").ClientID%>').value = e.get_value(); // source of the error 
    } 
</script> 

당신은 문제의 원인이 될 수에 대해 어떻게 생각하십니까?

감사

+0

이 기사는 몇 가지 제안을 줄 수 있다고 생각합니다. http://www.codeproject.com/Articles/272335/JSON-Serialization-and-Deserialization-in-ASP-NET –

답변

1

OK, 그래서 추적 조금 후에, 나는 Telerik 콤보 상자가 오류의 원인이었다 것으로 나타났습니다. 그리고 분명히, JSON을 사용하여 오류가 발생하여 140,000 개의 매우 적은 양의 아이템을 회수하고있었습니다. 별거 아니지? 흠.

+0

그래서 어떻게 수정 했습니까? –

+0

글쎄, 실제로 Telerik Combobox는 140,000 항목을 검색하지 않아야했습니다. 나는 그것을 고쳤다. (그것은 약간의 아이템을 돌려 주었다), 그것은 효과가 있었다. 동일한 문제가 발생하면 페이지의 모든 타사 구성 요소를 비활성화하거나 드롭 다운 길이 등을 확인하십시오. 귀하의 페이지에서 JSON을 사용하여 너무 많은 항목을 회수하고 있습니다. 그것이 무엇인지 알아보십시오. – thomasb

관련 문제