2015-01-28 5 views
5

클라이언트에 Json 문자열을 반환하는 .Net 웹 서비스 (.asmx)가 있습니다. 그러나 일부 데이터는 실제로 크기가 크므로 때때로이 오류가 발생합니다.문자열의 길이가 maxJsonLength 속성에 설정된 값을 초과합니다.

문자열의 길이가 maxJsonLength 속성에 설정된 값을 초과합니다.

maxJsonLength 속성을 2147483644로 변경했지만 여전히 작동하지 않습니다. 도와주세요 ... 고마워요.

<system.web.extensions> 
    <scripting> 
     <webServices> 
     <jsonSerialization maxJsonLength="2147483644"/> 
     </webServices> 
    </scripting> 
    </system.web.extensions> 



[WebMethod] 
     [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] 
     public void GetData(string login) 
     { 
      // throw an error on this line... 
      string result = new JavaScriptSerializer().Serialize(service.GetData(login)); 


      Context.Response.Write(result); 
     } 
+0

합니까 [이 질문 (과 답변)] (http://stackoverflow.com/questions/1151987/can-i에서 멀리 "system.web.extensions"부분을 제거 -set-an-unlimited-for-maxjsonlength-in-web-config) 문제를 해결 하시겠습니까? – NextInLine

+0

George - @NextInLine의 링크에서 두 번째 대답은 원하는 것입니다. 새 JavaScriptSerializer의 'maxJsonLength'를 속성으로 설정하십시오. 링크의 첫 번째 대답은 도움이되지 않습니다. –

+0

[ "Newtonsoft.Json"] (http://www.newtonsoft.com/json)을 사용하고 있지만 코드에서 ['JavaScriptSerializer'] (https://msdn.microsoft.com/)를 사용한다고 가정 해보십시오. en-us/library/system.web.script.serialization.javascriptserializer % 28v = vs.110 % 29.aspx). 확인하려면 뉴튼 소프트를 사용하지 마세요 .Json 맞지? – dbc

답변

7

Ed Gibbs와 @NextInLine의 제안에 감사드립니다. 나는 아래의 수정을했고 그것은 지금 매력처럼 작동합니다. 나는 또한 내 Web.config의

[WebMethod] 
     [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] 
     public void GetData(string login) 
     { 

      // when the amount of data return is huge 
      var serializer = new JavaScriptSerializer(); 

      // we need to do this. 
      serializer.MaxJsonLength = Int32.MaxValue; 


      var result = serializer.Serialize(service.GetData(login)); 


      Context.Response.Write(result); 
     } 
관련 문제