আমি কি ওয়েবকনফিগে সর্বাধিক দৈর্ঘ্যের জন্য সীমাবদ্ধতা নির্ধারণ করতে পারি?


662

আমি jQuery এর স্বতঃসিদ্ধ বৈশিষ্ট্যটি ব্যবহার করছি। আমি যখন আরও 17000 রেকর্ডের তালিকা পুনরুদ্ধার করার চেষ্টা করি (প্রত্যেকের 10 টির বেশি দৈর্ঘ্য থাকবে না), এটি দৈর্ঘ্য অতিক্রম করে ত্রুটি ছুঁড়ে দেয়:

ব্যতিক্রম তথ্য:
ব্যতিক্রম প্রকার: অবৈধ অপশন এক্সপশন
ব্যতিক্রম বার্তা: সিরিয়ালাইজেশনের সময় ত্রুটি বা JSON জাভাস্ক্রিপ্টসারিয়াল ব্যবহার করে ডিসিরিয়ালেসনের সময়। স্ট্রিংয়ের দৈর্ঘ্য সর্বোচ্চ জেসনলেন্থ সম্পত্তিতে সেট মানটি ছাড়িয়ে গেছে।

আমি সীমাহীন দৈর্ঘ্য সেট করতে পারেন maxJsonLengthমধ্যে web.config? যদি তা না হয় তবে আমি সর্বোচ্চ নির্ধারণ করতে পারি?


1
কিছু উল্লেখ করার মত যা খুব সুস্পষ্ট হতে পারে তাই দয়া করে আমাকে ক্ষমা করবেন যদি আপনি যদি ইতিমধ্যে ভেবে থাকেন তবে; জসন স্ট্রিংয়ে প্রতিটি রেকর্ডের চারপাশে কোঁকড়ানো বন্ধনী, প্রতিটি ক্ষেত্রের নাম [এবং মান] এর সাথে ক্ষেত্রের নাম এবং মান হিসাবে চারপাশে উদ্ধৃতি চিহ্ন অন্তর্ভুক্ত রয়েছে। সুতরাং ক্ষেত্রের নামটি একটি একক অক্ষর হিসাবে সেট করা এবং এটিও নিশ্চিত হওয়া উচিত যে মানটি যদি কোনও স্ট্রিং না হয় তবে আপনি ক্ষেত্রের ধরনটি সঠিকভাবে সেট করেছেন যাতে এতে উদ্ধৃতি চিহ্ন নেই।
মাইকেল জেইটেলার

উত্তর:


719

দ্রষ্টব্য: এই উত্তরটি কেবলমাত্র ওয়েব পরিষেবাগুলিতে প্রযোজ্য, আপনি যদি কোনও নিয়ন্ত্রণকারী পদ্ধতি থেকে জেএসএনকে ফিরিয়ে দিচ্ছেন তবে নীচেও এই এসও উত্তরটি পড়েছেন তা নিশ্চিত করুন: https://stackoverflow.com/a/7207539/1246870


MaxJsonLength সম্পত্তি সীমাহীন হতে পারে না, একটি পূর্ণসংখ্যা সম্পত্তি যে ডিফল্টে 102400 (100 কিলোবাইট)।

আপনি MaxJsonLengthসম্পত্তিটি আপনার ওয়েবকনফাইগে সেট করতে পারেন :

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

153
এটি একটি পূর্ণসংখ্যা তাই আপনি নির্ধারিত সর্বাধিক মানটি হ'ল:
2147483644

57
@ ডেস্পার্ট: আপনার অর্থ 2 147 483
647.

6
@ কি.মি.সি.সি .৯৯, আইএমও মানগুলি ভুল নয় কারণ আপনি যদি প্রশ্নটি দেখেন, ওপি জিজ্ঞাসা করে না "ম্যাক্সজসনলেন্থের ডিফল্ট মান কী?" (বিটিডাব্লু, দ্বিতীয় সর্বাধিক ভোট দেওয়া উত্তরটি এর উত্তর দিচ্ছে, ভুল প্রশ্নের উত্তর), তিনি এই সম্পত্তিটি "সীমাহীন" এ সেট করার চেষ্টা করছেন, তবে যেহেতু একটি পূর্ণসংখ্যা, তাই সর্বোচ্চ মূল্য 2147483647@ ডিপসার্ট এবং @ ডেস্কার পয়েন্ট আউট হিসাবে উল্লেখযোগ্য।
সিএমএস

11
দুর্দান্ত তবে খেয়াল করুন নীচে @ ডেভিড মারডোকের জবাবটি যদি আপনার এমভিসি return Json()বা অন্য কিছু ব্যবহার করার সময় এই সমস্যাটি হয়
ব্রিটিশ ডেভেলপার

3
@ ডার্কিশার: কী কথা? 2147483644 হ'ল সবচেয়ে বড় পূর্ণসংখ্যা 1024 দ্বারা পুরোপুরি বিভাজ্য
নবীন

461

আপনি যদি এমভিসি 4 ব্যবহার করে থাকেন তবে অবশ্যই নিশ্চিত হয়ে নিন এই উত্তরটি পাশাপাশি।


আপনি যদি এখনও ত্রুটিটি পান তবে:

  • maxJsonLengthসম্পত্তিটিকে তার সর্বোচ্চ মানকে ওয়েবকনফাইগ-এ সেট করার পরে
  • এবং আপনি জানেন যে আপনার ডেটার দৈর্ঘ্য এই মানের চেয়ে কম
  • এবং আপনি জাভাস্ক্রিপ্ট সিরিয়ালকরণের জন্য একটি ওয়েব পরিষেবা পদ্ধতি ব্যবহার করছেন না

আপনার সমস্যা সম্ভবত:

ম্যাকজেসনলেন্থ সম্পত্তিটির মান কেবলমাত্র অভ্যন্তরীণ জাভাস্ক্রিপ্টসিরাইজার উদাহরণ হিসাবে প্রযোজ্য যা অ্যাসিঙ্ক্রোনাস যোগাযোগ স্তর দ্বারা ওয়েব পরিষেবাদি পদ্ধতিতে অনুরোধ করা হয়। ( এমএসডিএন: স্ক্রিপ্টিং জসনসিরিয়ালাইজেশন সেকশন.ম্যাক্সজেসনলেন্থ সম্পত্তি )

মূলত, "অভ্যন্তরীণ" কোনও ওয়েব পদ্ধতি থেকে কল করার সময় JavaScriptSerializerএর মানকে সম্মান করে maxJsonLength; একটি JavaScriptSerializer(বা একটি এমভিসি অ্যাকশন-পদ্ধতি / নিয়ন্ত্রণকারীর মাধ্যমে ব্যবহার) এর সরাসরি ব্যবহার সম্পত্তিকে সম্মান করে নাmaxJsonLength , কমপক্ষেsystemWebExtensions.scripting.webServices.jsonSerialization ওয়েবকনফিগের বিভাগ ।

কার্যকারণ হিসাবে, আপনি নিজের কন্ট্রোলারের মধ্যে নিম্নলিখিত (বা সত্যিই যে কোনও জায়গায়) করতে পারেন:

var serializer = new JavaScriptSerializer();

// For simplicity just use Int32's max value.
// You could always read the value from the config section mentioned above.
serializer.MaxJsonLength = Int32.MaxValue;

var resultData = new { Value = "foo", Text = "var" };
var result = new ContentResult{
    Content = serializer.Serialize(resultData),
    ContentType = "application/json"
};
return result;

এই উত্তরটি আমার এই এসপি নেট ফোরামের উত্তরটির ব্যাখ্যা ।


5
আপনার উত্তরটি সত্যই সহায়ক ছিল কারণ আমি Json()অ্যাসপিএনভিভি এমভিসি-তে ক্রিয়া ফলাফল পদ্ধতিটি ব্যবহার করছি ।
jessegavin

3
হ্যাঁ আমি একজন জসন () ভুগছিলাম। ধন্যবাদ!
ব্রিটিশ ডেভেলপার

3
যদিও এটি সম্পূর্ণরূপে সঠিক এবং এর জায়গার প্রাপ্য, এটি এমন প্রশ্নগুলির মধ্যে একটি যেখানে এটি শীর্ষ উত্তরটি পড়ে পঠনীয় :)। ধন্যবাদ!
নাইজেল

3
আপনি যদি এমভিসি 4 ব্যবহার করে থাকেন তবে দয়া করে @ ফ্যানিশ্চের উত্তরও দেখুন।
বিয়ারস

4
কীভাবে ডেসারিয়ালাইজেশন? আমি এই ত্রুটিটি অ্যাকশনের মডেল বাইন্ডিংয়ের সাথে পূরণ করেছি।
guogangj

345

এমভিসি 4 এ আপনি করতে পারেন:

protected override JsonResult Json(object data, string contentType, System.Text.Encoding contentEncoding, JsonRequestBehavior behavior)
{
    return new JsonResult()
    {
        Data = data,
        ContentType = contentType,
        ContentEncoding = contentEncoding,
        JsonRequestBehavior = behavior,
        MaxJsonLength = Int32.MaxValue
    };
}

আপনার নিয়ামক মধ্যে।

সংযোজন:

আপনার নির্দিষ্ট করে দেওয়া প্যারামিটারগুলির দ্বারা আশ্চর্য হওয়া যে কোনও ব্যক্তির জন্য, কলটি এর মতো হতে পারে:

Json(
    new {
        field1 = true,
        field2 = "value"
        },
    "application/json",
    Encoding.UTF8,
    JsonRequestBehavior.AllowGet
);

6
আমি নিশ্চিত করতে পারি যে উপরেরগুলি এমভিসি 4 তে কবজির মতো কাজ করে, ধন্যবাদ ফ্যানিশ্চকে।
বিয়ারস

9
আমি পাশাপাশি নিশ্চিত করতে পারি। একটি বেস নিয়ামকের ভিতরে এই কোডটি রাখা অবশ্যই প্রস্তাবিত সবচেয়ে পরিষ্কার পদ্ধতির।
সংসদ

15
এটি পৃথক ক্রিয়াকলাপের ফলাফলের জন্য "ম্যাক্সজসনলেন্থথ = ইনট 32.ম্যাক্সভ্যালু" যুক্ত করেও কাজ করে। যদি পরিবর্তনটি কাঙ্ক্ষিত নিয়ামক বা প্রকল্পের প্রশস্ত না হয়।
Hypnovirus

3
এটি সেরা উত্তর। ম্যাকজেসসনলেন্থ প্রতি নিয়ামককে কনফিগার করা যায়।
লিয়াং

3
সতর্কতা: এই সমাধান প্রতিক্রিয়াটির সংক্ষেপণ (যদি অনুরোধ করা হয়) অক্ষম করে। : আপনার কর্মের উপর এই ফিল্টার যোগ করুন stackoverflow.com/questions/3802107/...
Gorgi Rankovski

60

আপনি আপনার ওয়েব.কমফিগ ফাইলে জসন অনুরোধের সর্বাধিক দৈর্ঘ্যটি কনফিগার করতে পারেন:

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

ম্যাকজেসনলেন্থের ডিফল্ট মান 102400 । আরও বিশদের জন্য এই এমএসডিএন পৃষ্ঠাটি দেখুন: http://msdn.microsoft.com/en-us/library/bb763183.aspx


1
প্রতিনিধিত্বকারী এই পূর্ণসংখ্যার সঞ্চিত মান কী? এটি কি চরিত্রের কোনও ধরণের গণনা? আমি অনুমান করি আমি যা জিজ্ঞাসা করছি তা কেন, কেন পূর্ণসংখ্যা ব্যবহার করা হচ্ছে? ধন্যবাদ!
agগলই

@ agগল 22 নম্বরটি ম্যাকজেজেসনলেন্থের জন্য কতগুলি বাইট ব্যবহার করা যায় তা উপস্থাপন করে। এম 4 এন যেমন উল্লেখ করেছে, 102400 হ'ল ডিফল্ট (100KB)।
জ্যাকব প্লোনকে

এটি আমার জন্য কাজ করা হয় না এবং আমি ওয়েব পরিষেবা ব্যবহার করি না।
কালাই

42

আপনি যদি এখনও নিম্নলিখিত ওয়েবকনফাইগ সেটিংয়ের পরে ত্রুটি পেয়ে থাকেন:

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

আমি নিম্নলিখিত দ্বারা এটি সমাধান:

   public ActionResult/JsonResult getData()
   {
      var jsonResult = Json(superlargedata, JsonRequestBehavior.AllowGet);
      jsonResult.MaxJsonLength = int.MaxValue;
      return jsonResult;
    }

আমি আশা করি এটি সাহায্য করবে।


2
ওয়েবকনফিগে সর্বাধিক জেসনলেন্থ সেট করা অনিচ্ছাকৃত, jsonResult.MaxJsonLength সেট করা যথেষ্ট হবে (কমপক্ষে এটি আমার জন্য হয়েছিল (এমভিসি 5))
হরবার্গ

এটি ভাল কারণ এটি বিশ্বব্যাপী পরিবর্তন নয়।
রব_জেমস

40

এএসপি.এনইটি ওয়েব ফর্মগুলিতে আমার এই সমস্যাটি ছিল। এটি সম্পূর্ণরূপে ওয়েবকনফিগ ফাইল সেটিংসকে উপেক্ষা করছে তাই আমি এটি করেছি:

        JavaScriptSerializer serializer = new JavaScriptSerializer();

        serializer.MaxJsonLength = Int32.MaxValue; 

        return serializer.Serialize(response);

অবশ্যই সামগ্রিকভাবে এটি ভয়ানক অনুশীলন। আপনি যদি ওয়েব সার্ভিস কলটিতে এত বেশি ডেটা প্রেরণ করছেন তবে আপনার উচিত একটি ভিন্ন পদ্ধতির দিকে নজর দেওয়া।


1
এই কাজ কি তোমার জন্য ছিল? আপনি এই কোডটি কোথায় রেখেছিলেন?
ব্যবহারকারী 1012598

আমাদের সমস্যাটি ছিল কারণ আমাদের কাছে এমন একটি টেক্সেরিয়া ছিল যা এইচটিএমএলকে অনুমতি দেয় এবং লোকেরা এইচটিএমএল হিসাবে চিত্রগুলি এম্বেড করে যা এন্ট্রি খুব বড় হয়ে যায় এবং জেএসএন সিরিয়ালাইজার ব্যর্থ হয়। আমি অনুমান করি এটি করা সম্ভব হলে ব্যবহারকারীরা এটি করবে ...
মার্কো

আমাদের এই কোডটি কোথায় রাখা উচিত দয়া করে তা বর্ণনা করুন ... @ ফ্লাই
কোরাই ডুরুডোগান

@ কোরেডুরুদোগান - আমি এটি এজাক্স পদ্ধতিতে রেখেছি যা প্রতিক্রিয়া ফিরিয়েছিল, তাই আমার নিয়ামক হিসাবে। আশা করি এইটি কাজ করবে!
ফ্লাই

আমি আপনার প্রতিক্রিয়াটিকে চ্যালেঞ্জ করছি না, তবে কী আরও ভাল পন্থাগুলি রয়েছে সে সম্পর্কে আরও ভাল ধারণা পাওয়ার চেষ্টা করছি। আমার একটি প্রশ্ন রয়েছে যে ব্যবহারকারীর মানদণ্ড কী তার উপর নির্ভর করে ফলাফলের আকার নির্ধারণ করবে। আমি একটি জসনআরসাল্ট ফিরিয়ে দিই, আমি যদি কোনও এক্সেল ফাইল ফিরিয়ে দিয়ে থাকি তবে কি ব্যাপার হবে?
agগলই

22

আমি এটা ঠিক করেছি.

//your Json data here
string json_object="........";
JavaScriptSerializer jsJson = new JavaScriptSerializer();
jsJson.MaxJsonLength = 2147483644;
MyClass obj = jsJson.Deserialize<MyClass>(json_object);

এটি খুব ভাল কাজ করে।


অসাধারণ! এটিই একমাত্র সমাধান যা আমার জন্য এবং এটি যে কোনও বিশ্বব্যাপী পরিবর্তন নয়, তার থেকে আরও ভালভাবে কাজ করেছে। ধন্যবাদ!
Sealer_05

20

আমি ভেস্টিগালের উত্তর অনুসরণ করেছি এবং এই সমাধানটি পেয়েছি:

যখন আমাকে একটি নিয়ামকের কোনও ক্রিয়ায় একটি বৃহত জসন পোস্ট করার দরকার হয়েছিল তখন আমি বিখ্যাত "জেএসএন জাভাস্ক্রিপ্টসরিয়ালাইজার ব্যবহার করে ডিসিরিয়ালেসনের সময় ত্রুটি পেয়ে যাব the স্ট্রিংয়ের দৈর্ঘ্য সর্বাধিক জেসনলেংথ সম্পত্তিতে সেট করা মানকে ছাড়িয়েছে \ P r \ n প্যারামিটারের নাম: ইনপুট মান প্রদানকারী "।

আমি যা করেছি তা হ'ল একটি নতুন ভ্যালুপ্রোভিডারফ্যাক্টরি, লার্জজসনভ্যালিউপ্রভাইডার ফ্যাক্টরি তৈরি করুন এবং গেটডিজারালাইজডঅবজেক্ট পদ্ধতিতে ম্যাক্সজেসনলেন্থ = ইনট 32.ম্যাক্সভ্যালু সেট করুন is

public sealed class LargeJsonValueProviderFactory : ValueProviderFactory
{
private static void AddToBackingStore(LargeJsonValueProviderFactory.EntryLimitedDictionary backingStore, string prefix, object value)
{
    IDictionary<string, object> dictionary = value as IDictionary<string, object>;
    if (dictionary != null)
    {
        foreach (KeyValuePair<string, object> keyValuePair in (IEnumerable<KeyValuePair<string, object>>) dictionary)
            LargeJsonValueProviderFactory.AddToBackingStore(backingStore, LargeJsonValueProviderFactory.MakePropertyKey(prefix, keyValuePair.Key), keyValuePair.Value);
    }
    else
    {
        IList list = value as IList;
        if (list != null)
        {
            for (int index = 0; index < list.Count; ++index)
                LargeJsonValueProviderFactory.AddToBackingStore(backingStore, LargeJsonValueProviderFactory.MakeArrayKey(prefix, index), list[index]);
        }
        else
            backingStore.Add(prefix, value);
    }
}

private static object GetDeserializedObject(ControllerContext controllerContext)
{
    if (!controllerContext.HttpContext.Request.ContentType.StartsWith("application/json", StringComparison.OrdinalIgnoreCase))
        return (object) null;
    string end = new StreamReader(controllerContext.HttpContext.Request.InputStream).ReadToEnd();
    if (string.IsNullOrEmpty(end))
        return (object) null;

    var serializer = new JavaScriptSerializer {MaxJsonLength = Int32.MaxValue};

    return serializer.DeserializeObject(end);
}

/// <summary>Returns a JSON value-provider object for the specified controller context.</summary>
/// <returns>A JSON value-provider object for the specified controller context.</returns>
/// <param name="controllerContext">The controller context.</param>
public override IValueProvider GetValueProvider(ControllerContext controllerContext)
{
    if (controllerContext == null)
        throw new ArgumentNullException("controllerContext");
    object deserializedObject = LargeJsonValueProviderFactory.GetDeserializedObject(controllerContext);
    if (deserializedObject == null)
        return (IValueProvider) null;
    Dictionary<string, object> dictionary = new Dictionary<string, object>((IEqualityComparer<string>) StringComparer.OrdinalIgnoreCase);
    LargeJsonValueProviderFactory.AddToBackingStore(new LargeJsonValueProviderFactory.EntryLimitedDictionary((IDictionary<string, object>) dictionary), string.Empty, deserializedObject);
    return (IValueProvider) new DictionaryValueProvider<object>((IDictionary<string, object>) dictionary, CultureInfo.CurrentCulture);
}

private static string MakeArrayKey(string prefix, int index)
{
    return prefix + "[" + index.ToString((IFormatProvider) CultureInfo.InvariantCulture) + "]";
}

private static string MakePropertyKey(string prefix, string propertyName)
{
    if (!string.IsNullOrEmpty(prefix))
        return prefix + "." + propertyName;
    return propertyName;
}

private class EntryLimitedDictionary
{
    private static int _maximumDepth = LargeJsonValueProviderFactory.EntryLimitedDictionary.GetMaximumDepth();
    private readonly IDictionary<string, object> _innerDictionary;
    private int _itemCount;

    public EntryLimitedDictionary(IDictionary<string, object> innerDictionary)
    {
        this._innerDictionary = innerDictionary;
    }

    public void Add(string key, object value)
    {
        if (++this._itemCount > LargeJsonValueProviderFactory.EntryLimitedDictionary._maximumDepth)
            throw new InvalidOperationException("JsonValueProviderFactory_RequestTooLarge");
        this._innerDictionary.Add(key, value);
    }

    private static int GetMaximumDepth()
    {
        NameValueCollection appSettings = ConfigurationManager.AppSettings;
        if (appSettings != null)
        {
            string[] values = appSettings.GetValues("aspnet:MaxJsonDeserializerMembers");
            int result;
            if (values != null && values.Length > 0 && int.TryParse(values[0], out result))
                return result;
        }
        return 1000;
     }
  }
}

তারপরে, Global.asax.cs থেকে অ্যাপ্লিকেশন_স্টার্ট পদ্ধতিতে, নতুনটির সাথে ভ্যালুপ্রাইডার ফ্যাক্টরিটি প্রতিস্থাপন করুন:

protected void Application_Start()
{
    ...

    //Add LargeJsonValueProviderFactory
    ValueProviderFactory jsonFactory = null;
    foreach (var factory in ValueProviderFactories.Factories)
    {
        if (factory.GetType().FullName == "System.Web.Mvc.JsonValueProviderFactory")
        {
            jsonFactory = factory;
            break;
        }
    }

    if (jsonFactory != null)
    {
        ValueProviderFactories.Factories.Remove(jsonFactory);
    }

    var largeJsonValueProviderFactory = new LargeJsonValueProviderFactory();
    ValueProviderFactories.Factories.Add(largeJsonValueProviderFactory);
}

1
আমি যা করতে পারি তার সবই আমি করেছি, কেবল আপনার উত্তরই আমার দিন বাঁচিয়েছিল, এই উত্তরটি গ্রহণ করা উচিত ছিল
মুহাম্মদ ওয়াকাস আজিজ

এই কোডের সাহায্যে আমরা এমভিসি নিয়ামক সর্বোচ্চ জেসন 4 এমবি ডেসিরিয়ালেশন সীমাটি ওভাররাইড করতে সক্ষম হয়েছি, তবে ওয়েব-এপিআই কন্ট্রোলার সর্বাধিক জেসন ডিসরিয়ালিশন সীমাটি ওভাররাইড করার উপায় আছে
মুহাম্মদ ওয়াকাস আজিজ

17

যদি, আপনার ওয়েবকনফাইগের উপরোক্ত সংযোজনটি প্রয়োগ করার পরে, আপনি একটি "অজ্ঞাত কনফিগারেশন বিভাগ সিস্টেম সিস্টেম.বিউব. এক্সটেনশানস" পান। ত্রুটি তারপর <ConfigSections>বিভাগে আপনার ওয়েবকনফিগ এ এটি যোগ করার চেষ্টা করুন :

            <sectionGroup name="system.web.extensions" type="System.Web.Extensions">
              <sectionGroup name="scripting" type="System.Web.Extensions">
                    <sectionGroup name="webServices" type="System.Web.Extensions">
                          <section name="jsonSerialization" type="System.Web.Extensions"/>
                    </sectionGroup>
              </sectionGroup>
        </sectionGroup>

4
আমার এই সমস্যা ছিল তবে এই উত্তরটি আমার পক্ষে কার্যকর হয়নি work এখানে বর্ণিত <সেকশনগ্রুপ> উপাদানটি যুক্ত করার পরিবর্তে, আমি স্রেফ আমার সম্পূর্ণ যুক্ত হওয়া <সিস্টেম.web.exferencess> ব্লকটি আমার ওয়েবকনফিগের ঠিক শেষ প্রান্তে সরিয়ে নিয়েছি ... </ translation> এর ঠিক আগে। তারপর এটি কাজ করে।
ClearCloud8

এটি সাহায্য করেছিল, তবে আমার পরিস্থিতিতে আমার আপনার চতুর্থ লাইনটি <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>এই পৃষ্ঠায় প্রদর্শিত হিসাবে পরিবর্তন করা দরকার : forums.asp.net/t/1446510.aspx/1
নাথান

@ ক্লিয়ারক্লাউড 8 সাথে সাথে এই পৃষ্ঠাতে এই মন্তব্যটি ছড়িয়ে পড়ুন।
জ্যাক নটকিনস

11

আপনি এই লাইনটি কন্ট্রোলারে লিখতে পারেন

json.MaxJsonLength = 2147483644;

আপনি এই লাইন লিখতে পারেন web.config

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

`

নিরাপদ দিকে থাকতে, উভয় ব্যবহার করুন।


10

আপনি যদি এমভিসিতে মিনিপ্রোফিলার থেকে এই ত্রুটিটি পেয়ে থাকেন তবে আপনি সম্পত্তিটিকে MiniProfiler.Settings.MaxJsonResponseSizeপছন্দসই মানটিতে সেট করে মান বাড়িয়ে নিতে পারেন । ডিফল্টরূপে, এই সরঞ্জামটি কনফিগারেশনে মান সেটটিকে উপেক্ষা করবে বলে মনে হচ্ছে।

MiniProfiler.Settings.MaxJsonResponseSize = 104857600;

সৌজন্যে এমভিসি-মিনি-প্রোফাইলার


10

কেবলমাত্র এমভিসির অ্যাকশন পদ্ধতিতে ম্যাক্সজসনলেন্থ প্রপ্রেটি সেট করুন

JsonResult json= Json(classObject, JsonRequestBehavior.AllowGet);
json.MaxJsonLength = int.MaxValue;
return json;

9

আমি এটি ইনস্টল করার পরামর্শ দিচ্ছি ইনট 32.ম্যাক্সভ্যালুতে।

JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue;

9

কীভাবে কিছু অ্যাট্রিবিউট ম্যাজিক?

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = false)]
public class MaxJsonSizeAttribute : ActionFilterAttribute
{
    // Default: 10 MB worth of one byte chars
    private int maxLength = 10 * 1024 * 1024;

    public int MaxLength
    {
        set
        {
            if (value < 0) throw new ArgumentOutOfRangeException("value", "Value must be at least 0.");

            maxLength = value;
        }
        get { return maxLength; }
    }

    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        JsonResult json = filterContext.Result as JsonResult;
        if (json != null)
        {
            if (maxLength == 0)
            {
                json.MaxJsonLength = int.MaxValue;
            }
            else
            {
                json.MaxJsonLength = maxLength;
            }
        }
    }
}

তারপরে আপনি এটি বিশ্বব্যাপী ফিল্টার কনফিগারেশন বা নিয়ামক / কর্ম-ভিত্তিক ব্যবহার করে বিশ্বব্যাপী প্রয়োগ করতে পারেন।


দুর্দান্ত উত্তর। কাস্টম বৈশিষ্ট্যগুলির দুর্দান্ত ব্যবহার। আপনি যদি কোনও (প্রযুক্তিগত) কারণে ম্যাক্সের (ইনট্যাক্সম্যাক্স ভ্যালু) পরিবর্তে 10 বগিবিশিষ্ট একটি বাইট চরের মূল্য নির্ধারণের জন্য ডিফল্ট সেট করে থাকেন তবে অবাক হন?
জোশ

@ জোশ না, এর কোনও বিশেষ কারণ ছিল না।
বালাজস

5

প্রশ্নটি আসলেই আপনার 17k রেকর্ডটি ফিরে আসার দরকার আছে কিনা? আপনি কীভাবে ব্রাউজারে সমস্ত ডেটা পরিচালনা করার পরিকল্পনা করছেন? ব্যবহারকারীরা যাইহোক 17000 সারি দিয়ে স্ক্রোল করতে যাচ্ছেন না।

আরও ভাল পন্থা হ'ল কেবলমাত্র "শীর্ষ কয়েক" রেকর্ড পুনরুদ্ধার করা এবং প্রয়োজনীয় হিসাবে আরও লোড করা।


1
জেসন থেকে ডিফল্ট তালিকা 17 কে রেকর্ড দেবে। তবে স্বতঃসম্পূর্ণ বৈশিষ্ট্যটি কেবল এমন রেকর্ডগুলি তালিকাভুক্ত করবে যা ব্যবহারকারীর দ্বারা বর্ণিত অক্ষরগুলির সাথে মেলে, সুতরাং এটি তালিকাটি আরও স্ক্রোল করতে হবে না। সুতরাং আমার যা দরকার তা হল সর্বোচ্চ জেসনলেংথের জন্য সীমাহীন দৈর্ঘ্য সেট করা যা 17 কে ডেটা সিরিয়ালাইজ করতে পারে।
প্রসাদ

6
আপনি সার্ভার এবং ক্লায়েন্ট সাইড ফিল্টারিংয়ের সংমিশ্রণটি ব্যবহার করতে পারেন। ক্লায়েন্ট পক্ষের সমস্ত ডেটা ফিল্টার করা শক্ত হতে পারে, নেটওয়ার্কের বিলম্বের কথা উল্লেখ না করে।
চিতান সাস্ট্রি

1
কিছুক্ষণ আগে এই একই সমস্যাটিতে উপস্থিত হয়ে আমি স্বতঃপূরণের জন্য একটি "অনারক" হ্যান্ডলারটি প্রয়োগ করতে এবং ওয়েব সার্ভিস কলকে "অনুসন্ধান" পাঠ্য পাস করার জন্য এবং ফিল্টার হিসাবে অনুসন্ধানের মানদণ্ডটি ব্যবহার করে একটি শীর্ষ 10 ক্যোয়ারী করতে বলি। এর অর্থ আরও স্বতন্ত্র এজাক্স অনুরোধগুলি ছিল, কেবলমাত্র পৃষ্ঠা লোডে সম্পূর্ণ তালিকা পাওয়া, তবে এর অর্থ হ'ল সমস্ত অনুরোধ / প্রতিক্রিয়াগুলিও অনেক কম ছিল।
মাইক ইউ 21

3

অন্যরা যেমন বলেছে তেমনভাবে আপনি এটি কনফিগারেশনে সেট করতে পারেন বা সিরিয়ালাইজারের পৃথক উদাহরণ হিসাবে আপনি সেট করতে পারেন:

var js = new JavaScriptSerializer() { MaxJsonLength = int.MaxValue };

3

যারা জেএসএনের সাথে এমভিসি 3 তে সমস্যা রয়েছে তাদের জন্য যা একটি মডেল বাইন্ডারের জন্য স্বয়ংক্রিয়ভাবে ডিজিটালাইজড হয়ে গেছে এবং এটি অনেক বড়, এখানে একটি সমাধান রয়েছে।

  1. এমভিসি 3 উত্স কোড থেকে জসনওয়ালিউপ্রভাইডারফ্যাক্টরি ক্লাসের জন্য কোডটি একটি নতুন ক্লাসে অনুলিপি করুন।
  2. অবজেক্টটি বিশিষ্ট হওয়ার আগে সর্বাধিক JSON দৈর্ঘ্য পরিবর্তন করতে একটি লাইন যুক্ত করুন।
  3. আপনার নতুন, পরিবর্তিত শ্রেণীর সাথে জসনভালিউপ্রভাইডারফ্যাক্টরি ক্লাসটি প্রতিস্থাপন করুন।

কীভাবে এটি করা যায় তার জন্য আমাকে সঠিক দিক নির্দেশ করার জন্য http://blog.naver.com/techshare/100145191355 এবং https://gist.github.com/DalSoft/1588818 ধন্যবাদ প্রথম সাইটের শেষ লিঙ্কটিতে সমাধানের সম্পূর্ণ উত্স কোড রয়েছে।


3

আপনি যদি ভিউতে এই ধরণের সমস্যার মুখোমুখি হন তবে এটি সমাধান করার জন্য আপনি নীচের পদ্ধতিটি ব্যবহার করতে পারেন। এখানে Iused নিউটনসফট প্যাকেজ।

@using Newtonsoft.Json
<script type="text/javascript">
    var partData = @Html.Raw(JsonConvert.SerializeObject(ViewBag.Part));
</script>

এর অর্থ কি আমি যদি Json.NET ব্যবহার করি তবে আমার সর্বোচ্চ দৈর্ঘ্য সম্পর্কে চিন্তা করার দরকার নেই? আমি মনে করি না যে জসন.নেটে সর্বোচ্চ দৈর্ঘ্য নির্ধারণ করার কোনও উপায় আছে তাই আমি আশা করছি এটি কেবল বাক্সের বাইরে চলে যাবে works
কিম্বাওদি

1
দুর্দান্ত উত্তর আপনাকে ধন্যবাদ! আমি যখন কোনও বস্তু লোড করার চেষ্টা করছিলাম তখন এটি কাজ করেছিল।
ব্যবহারকারী 1299379


2

এটি প্রদর্শিত হয় যে কোনও "সীমাহীন" মান নেই। ডিফল্টটি 2097152 টি অক্ষর, যা ইউনিকোড স্ট্রিং ডেটার 4 এমবি সমতুল্য।

যেমনটি ইতিমধ্যে পর্যবেক্ষণ করা হয়েছে, 17,000 রেকর্ড ব্রাউজারে ভাল ব্যবহার করা শক্ত। আপনি যদি একটি সামগ্রিক দর্শন উপস্থাপন করছেন তবে এটি সার্ভারে সমষ্টিটি করা এবং ব্রাউজারে কেবল একটি সংক্ষিপ্তসার স্থানান্তর করা আরও কার্যকর be উদাহরণস্বরূপ, একটি ফাইল সিস্টেম ব্রোভার বিবেচনা করুন, আমরা কেবল গাছের উপরের অংশটি দেখতে পাই, তারপরে ড্রিল করার পরে আরও প্রয়োজনীয়তা নির্গত করি। প্রতিটি অনুরোধে ফিরে আসা রেকর্ডের সংখ্যা তুলনামূলকভাবে কম। একটি ট্রি ভিউ উপস্থাপনা বড় ফলাফলের সেটগুলির জন্য ভাল কাজ করতে পারে।


3
পরিবর্তে উদ্ভটভাবে কোডে ডিফল্ট (নতুন জাভাস্ক্রিপ্টসরিয়ালাইজার ()) Max
ছিনিয়ে নিন

2

শুধু এই মধ্যে দৌড়ে। আমি ,000,০০০ এর বেশি রেকর্ড পাচ্ছি ঠিক করেছি আমি কিছু পেজিং করব। হিসাবে, আমি আমার এমভিসি জসনরসাল্ট এন্ডপয়েন্টে একটি পৃষ্ঠা নম্বর গ্রহণ করি, এটি 0 তে ডিফল্ট হয় সুতরাং এটি প্রয়োজনীয় নয়, এর মতো:

public JsonResult MyObjects(int pageNumber = 0)

তারপরে বলার পরিবর্তে:

return Json(_repository.MyObjects.ToList(), JsonRequestBehavior.AllowGet);

আমি বলি:

return Json(_repository.MyObjects.OrderBy(obj => obj.ID).Skip(1000 * pageNumber).Take(1000).ToList(), JsonRequestBehavior.AllowGet);

এটা খুবই সাধারণ. তারপরে, এর পরিবর্তে জাভাস্ক্রিপ্টে:

function myAJAXCallback(items) {
    // Do stuff here
}

আমি পরিবর্তে বলি:

var pageNumber = 0;
function myAJAXCallback(items) {
    if(items.length == 1000)
        // Call same endpoint but add this to the end: '?pageNumber=' + ++pageNumber
    }
    // Do stuff here
}

এবং আপনার রেকর্ডগুলি আপনি প্রথমে তাদের সাথে যা কিছু করেছিলেন তা সংযুক্ত করুন। বা সমস্ত কলগুলি শেষ না হওয়া পর্যন্ত অপেক্ষা করুন এবং ফলাফলগুলি একসাথে আবদ্ধ করুন।


2

আমি এই কোডটি যুক্ত করে সমস্যার সমাধান করেছি:

String confString = HttpContext.Current.Request.ApplicationPath.ToString();
Configuration conf = WebConfigurationManager.OpenWebConfiguration(confString);
ScriptingJsonSerializationSection section = (ScriptingJsonSerializationSection)conf.GetSection("system.web.extensions/scripting/webServices/jsonSerialization");
section.MaxJsonLength = 6553600;
conf.Save();

এটি হ্যাকিশ সমাধান মতো মনে হয় তবে নির্বিশেষে আকর্ষণীয় পদ্ধতির approach আমি এটি দরকারী খুঁজে পেয়েছি ধন্যবাদ! অ্যাপসনেট এমভিসি 5 কন্ট্রোলারে আমার জন্য আমাকে নামস্থান থেকে 'কারেন্ট' সরিয়ে ফেলতে হয়েছিল। আমি একটি দম্পতি সামঞ্জস্য করেছি:string confString = HttpContext.Request.ApplicationPath.ToString(); var conf = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(confString); var section = (System.Web.Configuration.ScriptingJsonSerializationSection)conf.GetSection("system.web.extensions/scripting/webServices/jsonSerialization"); section.MaxJsonLength = int.MaxValue; conf.Save();
ooXei1sh

2

বিকল্প এএসপি.নেট এমভিসি 5 ফিক্স:

(আমার কয়েকটি ছোট পরিবর্তন করে উপরের এমএফসি উত্তরগুলির অনুরূপ)

আমি ঠিক এখনও জসন.এনইটিতে পরিবর্তন করতে প্রস্তুত ছিলাম না এবং অনুরোধের সময় আমার ক্ষেত্রে ত্রুটি ঘটছিল। আমার দৃশ্যের সেরা পদ্ধতির বাস্তবটিকে সংশোধন করা হয়েছিল JsonValueProviderFactoryযা বৈশ্বিক প্রকল্পের স্থিরতা প্রয়োগ করে এবং global.csফাইলটি সম্পাদনা করে এটি করা যেতে পারে ।

JsonValueProviderConfig.Config(ValueProviderFactories.Factories);

একটি ওয়েব.কমফিগ এন্ট্রি যুক্ত করুন:

<add key="aspnet:MaxJsonLength" value="20971520" />

এবং তারপরে নিম্নলিখিত দুটি ক্লাস তৈরি করুন

public class JsonValueProviderConfig
{
    public static void Config(ValueProviderFactoryCollection factories)
    {
        var jsonProviderFactory = factories.OfType<JsonValueProviderFactory>().Single();
        factories.Remove(jsonProviderFactory);
        factories.Add(new CustomJsonValueProviderFactory());
    }
}

এটি মূলত ডিফল্ট বাস্তবায়নের একটি সঠিক অনুলিপি System.Web.Mvcতবে একটি কনফিগারযোগ্য ওয়েব কোডফাইগ অ্যাপসেটিং মান যুক্ত করার সাথে পাওয়া যায় aspnet:MaxJsonLength

public class CustomJsonValueProviderFactory : ValueProviderFactory
{

    /// <summary>Returns a JSON value-provider object for the specified controller context.</summary>
    /// <returns>A JSON value-provider object for the specified controller context.</returns>
    /// <param name="controllerContext">The controller context.</param>
    public override IValueProvider GetValueProvider(ControllerContext controllerContext)
    {
        if (controllerContext == null)
            throw new ArgumentNullException("controllerContext");

        object deserializedObject = CustomJsonValueProviderFactory.GetDeserializedObject(controllerContext);
        if (deserializedObject == null)
            return null;

        Dictionary<string, object> strs = new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase);
        CustomJsonValueProviderFactory.AddToBackingStore(new CustomJsonValueProviderFactory.EntryLimitedDictionary(strs), string.Empty, deserializedObject);

        return new DictionaryValueProvider<object>(strs, CultureInfo.CurrentCulture);
    }

    private static object GetDeserializedObject(ControllerContext controllerContext)
    {
        if (!controllerContext.HttpContext.Request.ContentType.StartsWith("application/json", StringComparison.OrdinalIgnoreCase))
            return null;

        string fullStreamString = (new StreamReader(controllerContext.HttpContext.Request.InputStream)).ReadToEnd();
        if (string.IsNullOrEmpty(fullStreamString))
            return null;

        var serializer = new JavaScriptSerializer()
        {
            MaxJsonLength = CustomJsonValueProviderFactory.GetMaxJsonLength()
        };
        return serializer.DeserializeObject(fullStreamString);
    }

    private static void AddToBackingStore(EntryLimitedDictionary backingStore, string prefix, object value)
    {
        IDictionary<string, object> strs = value as IDictionary<string, object>;
        if (strs != null)
        {
            foreach (KeyValuePair<string, object> keyValuePair in strs)
                CustomJsonValueProviderFactory.AddToBackingStore(backingStore, CustomJsonValueProviderFactory.MakePropertyKey(prefix, keyValuePair.Key), keyValuePair.Value);

            return;
        }

        IList lists = value as IList;
        if (lists == null)
        {
            backingStore.Add(prefix, value);
            return;
        }

        for (int i = 0; i < lists.Count; i++)
        {
            CustomJsonValueProviderFactory.AddToBackingStore(backingStore, CustomJsonValueProviderFactory.MakeArrayKey(prefix, i), lists[i]);
        }
    }

    private class EntryLimitedDictionary
    {
        private static int _maximumDepth;

        private readonly IDictionary<string, object> _innerDictionary;

        private int _itemCount;

        static EntryLimitedDictionary()
        {
            _maximumDepth = CustomJsonValueProviderFactory.GetMaximumDepth();
        }

        public EntryLimitedDictionary(IDictionary<string, object> innerDictionary)
        {
            this._innerDictionary = innerDictionary;
        }

        public void Add(string key, object value)
        {
            int num = this._itemCount + 1;
            this._itemCount = num;
            if (num > _maximumDepth)
            {
                throw new InvalidOperationException("The length of the string exceeds the value set on the maxJsonLength property.");
            }
            this._innerDictionary.Add(key, value);
        }
    }

    private static string MakeArrayKey(string prefix, int index)
    {
        return string.Concat(prefix, "[", index.ToString(CultureInfo.InvariantCulture), "]");
    }

    private static string MakePropertyKey(string prefix, string propertyName)
    {
        if (string.IsNullOrEmpty(prefix))
        {
            return propertyName;
        }
        return string.Concat(prefix, ".", propertyName);
    }

    private static int GetMaximumDepth()
    {
        int num;
        NameValueCollection appSettings = ConfigurationManager.AppSettings;
        if (appSettings != null)
        {
            string[] values = appSettings.GetValues("aspnet:MaxJsonDeserializerMembers");
            if (values != null && values.Length != 0 && int.TryParse(values[0], out num))
            {
                return num;
            }
        }
        return 1000;
    }

    private static int GetMaxJsonLength()
    {
        int num;
        NameValueCollection appSettings = ConfigurationManager.AppSettings;
        if (appSettings != null)
        {
            string[] values = appSettings.GetValues("aspnet:MaxJsonLength");
            if (values != null && values.Length != 0 && int.TryParse(values[0], out num))
            {
                return num;
            }
        }
        return 1000;
    }
}

1
ধন্যবাদ এটি কাজ করছে ... অনেক ধন্যবাদ @ ম্যাক্সিম জেরশকোভিচ
জ্যাস্পার মানিকারাজ


0

ওয়েব ফোরাম আপডেটপ্যানেলের সমাধান:

Web.config এ একটি সেটিংস যুক্ত করুন:

<configuration>
  <appSettings>
    <add key="aspnet:UpdatePanelMaxScriptLength" value="2147483647" />
  </appSettings>
</configuration>

https://support.microsoft.com/en-us/kb/981884

ScriptRegistrationManager শ্রেণিতে নিম্নলিখিত কোড রয়েছে:

// Serialize the attributes to JSON and write them out
JavaScriptSerializer serializer = new JavaScriptSerializer();

// Dev10# 877767 - Allow configurable UpdatePanel script block length
// The default is JavaScriptSerializer.DefaultMaxJsonLength
if (AppSettings.UpdatePanelMaxScriptLength > 0) {
    serializer.MaxJsonLength = AppSettings.UpdatePanelMaxScriptLength;
}  

string attrText = serializer.Serialize(attrs);

0

আমাদের কোনও সার্ভারের দিক পরিবর্তন দরকার নেই don't আপনি এটি কেবলমাত্র web.config ফাইল দ্বারা সংশোধন করতে পারেন এটি আমার জন্য সহায়তা করেছে। এটি চেষ্টা করে দেখুন

<appSettings>
 <add key="aspnet:MaxJsonDeserializerMembers" value="2147483647" />
<add key="aspnet:UpdatePanelMaxScriptLength" value="2147483647" />
</appSettings>  

and   

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


0

এএসপি.নেট এমভিসির জন্য ঠিক করুন: আপনি যদি সমস্যাটি সৃষ্টি করে এমন কোনও নির্দিষ্ট ক্রিয়াকলাপের জন্য যদি এটি ঠিক করতে চান তবে এই কোড করুন:

public JsonResult GetBigJson()
{
    var someBigObject = GetBigObject();
    return Json(someBigObject);
}

আপনি এটিতে পরিবর্তন করতে পারেন:

public JsonResult GetBigJson()
{
    var someBigObject = GetBigObject();
    return new JsonResult()
    {
        Data = someBigObject,
        JsonRequestBehavior = JsonRequestBehavior.DenyGet,
        MaxJsonLength = int.MaxValue
    };
}

এবং কার্যকারিতা একই হওয়া উচিত, আপনি কেবল প্রতিক্রিয়া হিসাবে বড় JSON ফিরে আসতে পারেন।


ASP.NET MVC সোর্স কোড উপর ভিত্তি করে ব্যাখ্যা: আপনি না পরীক্ষা করতে কি Controller.Jsonপদ্ধতি ASP.NET MVC মধ্যে আছে সোর্স কোড

protected internal JsonResult Json(object data)
{
    return Json(data, null /* contentType */, null /* contentEncoding */, JsonRequestBehavior.DenyGet);
}

এটি অন্য Controller.Jsonপদ্ধতিটি কল করছে :

protected internal virtual JsonResult Json(object data, string contentType, Encoding contentEncoding, JsonRequestBehavior behavior)
{
    return new JsonResult
    {
        Data = data,
        ContentType = contentType,
        ContentEncoding = contentEncoding,
        JsonRequestBehavior = behavior
    };
}

যেখানে পাস contentTypeএবং contentEncodingঅবজেক্ট হয় null। সুতরাং মূলত return Json(object)কন্ট্রোলারে কল করা কল করার সমতুল্য return new JsonResult { Data = object, JsonRequestBehavior = sonRequestBehavior.DenyGet }। আপনি দ্বিতীয় ফর্ম এবং পরামিতি ব্যবহার করতে পারেনJsonResult

সুতরাং আপনি যখন MaxJsonLengthসম্পত্তি সেট করবেন (ডিফল্টরূপে এটি নাল) তখন কী ঘটে ? এটি সম্পত্তিতে নেমে যায় JavaScriptSerializer.MaxJsonLengthএবং তারপরে JavaScriptSerializer.Serializeপদ্ধতিটি বলা হয় :

JavaScriptSerializer serializer = new JavaScriptSerializer();
if (MaxJsonLength.HasValue)
{
    serializer.MaxJsonLength = MaxJsonLength.Value;
}

if (RecursionLimit.HasValue)
{
    serializer.RecursionLimit = RecursionLimit.Value;
}

response.Write(serializer.Serialize(Data));

এবং যখন আপনি MaxJsonLenghtসিরিয়ালাইজারের সম্পত্তি সেট না করেন তখন এটি ডিফল্ট মান নেয় যা মাত্র 2MB।


-2

যদি এই ম্যাকজেসনলেন্থের মানটি কোন আন্ত হয় তবে এর ইনট 32 বিট / bit৪ বিট / ১bit বিবিট কত বড় .... আমি কেবল তা নিশ্চিত হতে চাই যে আমি আমার ম্যাক্সজেসনলেন্থ হিসাবে সর্বাধিক মানটি সেট করতে পারি

<scripting>
        <webServices>
            <jsonSerialization maxJsonLength="2147483647">
            </jsonSerialization>
        </webServices>
    </scripting>

-4

আপনার ওয়েবকনফাইগের দরকার নেই আপনি পাসের তালিকার ক্যাচ মান চলাকালীন স্বল্প সম্পত্তি ব্যবহার করতে পারেন উদাহরণস্বরূপ একটি মডেল ঘোষণা করুন

public class BookModel
    {
        public decimal id { get; set; }  // 1 

        public string BN { get; set; } // 2 Book Name

        public string BC { get; set; } // 3 Bar Code Number

        public string BE { get; set; } // 4 Edition Name

        public string BAL { get; set; } // 5 Academic Level

        public string BCAT { get; set; } // 6 Category
}

এখানে আমি বিসি = বারকোড বিই = বইয়ের সংস্করণ এবং এর মতো সংক্ষিপ্ত অনুপাত ব্যবহার করি


ডেটাগুলির
উইন্ডো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.