valor the supera stacktrace serialización propiedad property mvc mediante maxjsonlength maxjsondeserializermembers maximum longitud jsonserialization establecido error durante deserialización cadena jquery asp.net webmethod

jquery - the - maxjsonlength mvc 5



La longitud de la cadena excede el valor establecido en la propiedad maxJsonLength (3)

¿No sabe el tamaño de su cadena pero quizás aún supera el límite máximo que ha establecido?

Idealmente, los escenarios ajax están diseñados solo para llamadas del lado del servidor pequeñas a medianas, no para obtener toneladas de datos, y si obtiene una gran cantidad de datos utilizando la solicitud asíncrona, entonces está buscando problemas.

Vea here para una alternativa

Estoy cargando datos de contenido de pestañas a través del método de publicación ajax de jQuery a través del método web con alrededor de 200-300 registros. Y obteniendo el siguiente error en la consola:

Error: Sys.Net.WebServiceFailedException: Sys.Net.WebServiceFailedException: System.InvalidOperationException-- Error durante la serialización o deserialización utilizando el JSON JavaScriptSerializer. La longitud de la cadena excede el valor establecido en la propiedad maxJsonLength.

Cambiar la longitud del atributo maxJsonLength en Web.config como esto no ayuda.

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

puede alguien ayudarme a resolver esto?


JavaScriptSerialzer tiene una propiedad pública llamada MaxJsonLength según

http://msdn.microsoft.com/en-us/library/system.web.configuration.scriptingjsonserializationsection.maxjsonlength.aspx

Ahora, donde estás deserializando tu json, usa este

JavaScriptSerializer serializer = new JavaScriptSerializer(); serializer.MaxJsonLength = Int32.MaxValue; //Or any size you want to use, basically int maxValue is 2GB, you shouldn''t need this big json string to deserialize, else you are doing it wrong. myObject obj = serializer.Deserialize<myObject>(yourJsonString);

Y esto debería funcionar perfectamente, recientemente descubrí esto a través de msdn y resolví un problema que me estaba molestando por mucho tiempo.


Sé que este es un hilo muy antiguo en el momento de mi lectura, y que WebMethod no es realmente una cosa en ASP.NET MVC, por lo que es algo tangencial. Pero, si alguien lo cruza ...

Si usa ASP.NET MVC, existe una alternativa a invocar JavaScriptSerializer directamente, que consiste en inicializar JsonResult y establecer la propiedad MaxJsonLength en el resultado en sí:

private JsonResult GetReallyBigJsonResult(object data, JsonRequestBehavior requestBehavior) { return new JsonResult() { ContentEncoding = Encoding.Default, ContentType = "application/json", Data = data, JsonRequestBehavior = requestBehavior, MaxJsonLength = int.MaxValue }; }