2016-04-13 18 views
3

Wir können die max json Länge in der web.config auf zwei Arten einstellen:Was sind die Unterschiede zwischen maxJsonLength und MaxJsonDeserializerMembers?

1: in Bytes

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

2: in den App-Einstellungen. Die max Einträge im JSON-Objekt (dieser Fall 150.000)

<add key="aspnet:MaxJsonDeserializerMembers" value="150000" /> 

frage ich mich, wenn die man verwenden? Brauche ich immer beides? Arbeiten die beiden irgendwie miteinander?

Antwort

2

Per Definition sind hier die beiden Einstellungen in Frage.

  1. JavaScriptSerializer.MaxJsonLength

    Ruft die maximale Länge von JSON-Strings, die von der JavaScriptSerializer Klasse akzeptiert werden.

  2. aspnet:MaxJsonDeserializerMembers

    Gibt die Grenze der maximalen Anzahl der Elemente , die in keinem Wörterbuch vorhanden sein können, durch die JavaScriptSerializer Typ deserialisiert.

Das heißt, werfen Sie einen Blick auf this Antwort

Der Wert der MaxJsonLength Eigenschaft nur JavaScriptSerializer Instanz auf die interne gilt, die durch die asynchrone Kommunikationsschicht verwendet wird Web aufrufen Dienstleistungsmethoden. (MSDN: ScriptingJsonSerializationSection.MaxJsonLength Property)

und die Interpretation

der Antworter

Grundsätzlich ist die "interne" JavaScriptSerializer der Wert maxJsonLength respektiert, wenn sie von einem Web-Methode aufgerufen; direkte Verwendung eines JavaScript-Serializers (oder Verwendung über eine MVC-Action-Methode/Controller) nicht nicht respektieren die maxJsonLength -Eigenschaft, zumindest nicht von SystemWebExtensions.scripting.webServices.jsonSerialization Abschnitt web.config.

Verwandte Themen