2015-10-29 11 views
6

Ich möchte die Verarbeitung einer Anfrage stoppen können, wenn der JSON, der auf die Aktion meines Controllers gepostet wird, zu groß ist.So beenden Sie die Verarbeitung, wenn JSON zu groß ist

Die Größenbegrenzung variiert, so will ich nicht zu hart Code diesen Wert in meinem web.config

Gibt es eine Möglichkeit in meiner Controller Aktion zu überprüfen? Sagen Sie, mein Limit ist 100kb, wenn es übergeht Ich möchte nicht die CPU des Servers verschwenden, ich möchte einfach anhalten und sofort wiederkommen.

+0

I glaube nicht, leider. Das Problem ist, dass es keine Möglichkeit gibt zu wissen, wie groß die JSON-Darstellung sein muss, bis sie erstellt wurde. –

+0

Stimmen Sie mit @ChrisPratt überein, zusammen mit diesem minimierten JSON wird weniger Platz für die Speicherung belegt, als für einen lesbaren. Möglicherweise möchten Sie die Ausführung beschränken, bevor Sie JSON konvertieren. Wenn Sie beispielsweise eine Liste von Elementen rendern, möchten Sie möglicherweise die Anzahl der Elemente begrenzen (mit Paging usw.). Kurz vor der Konvertierung zu JSON und Senden an den Browser. – Rolice

Antwort

3

Es gibt eine solche Einstellung für diese in der Json Klasse (siehe Code unten):

var jsonResult = Json(jsonString, JsonRequestBehavior.AllowGet); 
jsonResult.maxJsonLength = int.MaxValue; 
return jsonResult; 

Es kann auch in der Konfiguration wie diese (Web.config) erfolgen:

<configuration> 
    <system.web.extensions> 
    <scripting> 
     <webServices> 
      <jsonSerialization maxJsonLength="50000000"/> 
     </webServices> 
    </scripting> 
    </system.web.extensions> 
</configuration> 
Verwandte Themen