Mon formulaire sur la page est un peu trop grand. Il recueille les données de mesure mensuelles. Jetez un coup d'œil à l'échantillon :
{
"Year":2013,
"Month":3,
"Records":[
{"Id":0,"Date":"3/1/2013","RiverSection":5,"UserNumber":56},
{"Id":0,"Date":"3/1/2013","RiverSection":7,"UserNumber":200},
{"Id":0,"Date":"3/1/2013","RiverSection":8,"UserNumber":556},
{"Id":0,"Date":"3/2/2013","RiverSection":5,"UserNumber":56},
{"Id":0,"Date":"3/2/2013","RiverSection":7,"UserNumber":200},
...
...
{"Id":0,"Date":"3/31/2013","RiverSection":7,"UserNumber":200}
}
Je transfère donc les données vers un contrôleur APIC.
Je fonctionne bien sur ma machine locale en utilisant le serveur de débogage de Visual Studio. Mais après avoir téléchargé le code sur le serveur (IIS 6). Il donne un 500 Internal Server Error
.
J'ai essayé d'afficher des échantillons de données et j'ai vérifié la longueur de la chaîne de caractères json.
Dans un échantillon de données, la longueur de mon json est de 5743, et j'ai obtenu un "succès". Mais si la taille du json passe à 17345, j'obtiens un "succès". 500 Internal Server Error
.
J'ai donc essayé d'augmenter la limite de json. Base sur ce poste
En Web.Config
:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="5000000">
</jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
Mais cela ne fonctionne pas.
Il existe une autre réponse, l'utilisation :
var serializer = new JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue;
Mais où devons-nous placer ce code ? dans Global.asax
?
J'utilise IIS 6, est-ce un problème ? Comment puis-je augmenter correctement la limite de la taille du json afin que mes données puissent atteindre l'action WebApi ?
Merci de votre aide