字符串的长度超过maxJsonLength属性中设置的值
我通过约200-300条记录通过web方法通过jQuery的ajax
post方法加载标签内容数据。 并在控制台中出现以下错误:
错误:Sys.Net.WebServiceFailedException:Sys.Net.WebServiceFailedException:System.InvalidOperationException - 在使用JSON JavaScriptSerializer进行序列化或反序列化期间出错。 字符串的长度超过maxJsonLength属性中设置的值。
像这样改变Web.config中maxJsonLength
属性的长度并没有帮助。
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483644" />
</webServices>
</scripting>
</system.web.extensions>
</configuration>
谁能帮我解决这个问题吗?
JavaScriptSerialzer拥有一个名为MaxJsonLength的公共属性
http://msdn.microsoft.com/en-us/library/system.web.configuration.scriptingjsonserializationsection.maxjsonlength.aspx
现在,在反序列化你的json的地方,使用这个
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue; //Or any size you want to use, basically int maxValue is 2GB, you shouldn't need this big json string to deserialize, else you are doing it wrong.
myObject obj = serializer.Deserialize<myObject>(yourJsonString);
这应该是完美的,我最近通过msdn解决了这个问题,并解决了一个长期困扰我的问题。
我知道这是我阅读时的一个非常古老的线程,并且WebMethod在ASP.NET MVC中并不是真正的东西,所以这有点切题。 但是,如果有人跑过去 -
如果您使用ASP.NET MVC,则可以直接调用JavaScriptSerializer
,它将初始化JsonResult
并将MaxJsonLength
属性设置为结果本身:
private JsonResult GetReallyBigJsonResult(object data, JsonRequestBehavior requestBehavior)
{
return new JsonResult()
{
ContentEncoding = Encoding.Default,
ContentType = "application/json",
Data = data,
JsonRequestBehavior = requestBehavior,
MaxJsonLength = int.MaxValue
};
}
不知道你的字符串的大小,但它可能仍然超过你设置的最大限制?
理想情况下,ajax场景仅适用于中小型服务器端调用,而不是用于获取大量数据,并且如果使用异步请求获取大量数据,则会出现问题。
看到这里的替代
链接地址: http://www.djcxy.com/p/42055.html上一篇: The length of the string exceeds the value set on the maxJsonLength property
下一篇: MaxJsonLength exception in ASP.NET MVC during JavaScriptSerializer