2015-10-29 10 views
6

यदि मैं अपने नियंत्रक की कार्रवाई में पोस्ट किया गया JSON बहुत बड़ा है तो मैं अनुरोध को संसाधित करना बंद करना चाहता हूं।यदि JSON बहुत बड़ा है तो प्रसंस्करण को कैसे रोकें

आकार सीमा तो अलग अलग होंगे मैं अपने web.config

में यह मान मुश्किल कोड नहीं करना चाहती कि मेरे नियंत्रक कार्रवाई में जांच करने के लिए कोई तरीका है? मान लें कि मेरी सीमा 100kb है, अगर यह खत्म हो जाती है तो मैं सर्वर सीपीयू को बर्बाद नहीं करना चाहता, मैं बस रुकना चाहता हूं और तुरंत वापस आना चाहता हूं।

+0

मैं दुर्भाग्य से ऐसा मत सोचो। समस्या यह है कि यह जानने का कोई तरीका नहीं है कि जेएसओएन प्रतिनिधित्व को तब तक बनाया जाना चाहिए जब तक इसे बनाया नहीं जाता है। –

+0

@ChrisPratt के साथ सहमत हैं, इस minified JSON के साथ मानव-पठनीय एक की तुलना में संग्रहीत करने के लिए कम जगह पर कब्जा कर लिया जाएगा। आप जेएसओएन को परिवर्तित करने से पहले निष्पादन को सीमित करना चाहेंगे। उदाहरण के लिए, यदि आप वस्तुओं की एक सूची प्रस्तुत करते हैं, तो आप आइटम की संख्या (पेजिंग या अन्य के साथ) सीमित करना चाहेंगे। जेएसओएन में कनवर्ट करने से पहले और इसे ब्राउज़र पर भेजना। – Rolice

उत्तर

3

Json कक्षा में इस के लिए इस तरह के एक सेटिंग है (कोड नीचे देखें):

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

यह भी इस (Web.config) की तरह विन्यास में किया जा सकता है:

<configuration> 
    <system.web.extensions> 
    <scripting> 
     <webServices> 
      <jsonSerialization maxJsonLength="50000000"/> 
     </webServices> 
    </scripting> 
    </system.web.extensions> 
</configuration> 
संबंधित मुद्दे