我的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语句。
其他人可以看到我不尝试的东西吗?我已经没有什么可试的了。