La chaîne dépasse maxJsonLength avec moins de 250 Ko

J’utilise une entité avec ajax. Je veux la table complète avec le framework Entity dans une grid créée avec JavaScript. Le tableau que j’envoie contient actuellement moins de 140 lignes. Mon code fonctionne si je n’ai que 50 lignes dans la table, un peu plus et l’erreur suivante:

{"Message":"Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the ssortingng exceeds the value set on the maxJsonLength property.","StackTrace":" at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, SsortingngBuilder output, SerializationFormat serializationFormat)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, SerializationFormat serializationFormat)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj)\r\n at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"} 

Dans mes statistiques de réseau, une erreur 500 apparaît pour mon XMLHttpRequest dans le corps de la réponse. Le message d’erreur ci-dessus s’affiche. Si je limite le nombre de lignes à 50, la page peut fonctionner correctement et je peux voir mes données dans le corps de la réponse. Le code suivant est tout le code dont vous avez besoin pour envoyer des données de votre entité à votre javascript. JavaScript:

 $(function() { $.ajax({ url: "EditFeedApac.aspx/GetApacData", type: "POST", contentType: "application/json", success: function (result) { console.log(result.d); }, error: showError }); }); 

C #

 [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public static IEnumerable GetApacData() { var a = new Towers_WatsonEntities().tbl_TowersWatson_preAPAC.ToList(); Mapper.CreateMap(); var newData = a.Select(Mapper.Map).ToList(); return newData; } 

Comme vous pouvez le constater, l’erreur indique clairement que MaxJsonLength n’a pas été défini sur la valeur maximale. Dans la fonction GetApacData (), j’ai ajouté le code suivant:

 var serializer = new JavaScriptSerializer(); serializer.MaxJsonLength = Int32.MaxValue; ssortingng test = serializer.Serialize(newData); return test; 

Maintenant, MaxJsonLength pourrait atteindre la taille de 4 Mo, juste pour réduire la limite. Avec cette propriété, j’ai toujours la même erreur de sérialisation? Qu’est-ce que je fais mal ici? Comment puis-je envoyer mes données à mon JavaScript?

Essayez de changer le fichier de configuration en

          

Apparemment votre

 serializer.MaxJsonLength = Int32.MaxValue; 

est écrasé.