超出了JavaScriptSerializer.MaxJsonLength

时间:2014-02-27 22:02:38

标签: c# json asp.net-mvc-3

我的MVC3,C#,网络应用程序工作正常,直到今天早上。没有对数据或代码的更改,但现在我们在使用JSON JavaScriptSerializer进行序列化或反序列化时收到“错误。字符串的长度超过了maxJsonLength属性上设置的值。”

我已经尝试提高了网络配置文件的限制(我之后读的没有做任何事情,在我的情况下也没有):

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

原始退货声明是:

    return Json(new DataTableCustom(data), JsonRequestBehavior.AllowGet);

其中DataTableCustom的定义是:

    public class DataTableCustom
    {
      public List<List<string>> aaData { get; set; }

      public DataTableCustom(List<List<string>> data)
      {
          aaData = data;
      }
    }

我也尝试过使用它,没有运气:

    var serializer = new JavaScriptSerializer();
    serializer.MaxJsonLength = Int32.MaxValue;
    serializer.RecursionLimit = 100;

    var resultData = new { Value = "foo", Text = "bar" };
    var container = new ContentResult
    {
      Content = serializer.Serialize(new DataTableCustom(data)),
      ContentType = "application/json"
    };

    return Json(container, JsonRequestBehavior.AllowGet);

我尝试过它的变体和其他一切。但仍然没有运气。奇怪的是,它发生在Production上,但不会一直在Test上,具体取决于MaxJsonLength或return语句。

其他人可以看到我不尝试的东西吗?我已经没有什么可试的了。

0 个答案:

没有答案