我在ASPX页面的代码隐藏中有一个WebMethod
:
[WebMethod]
public static string GetServiceDetail()
{
//...
}
我使用jQuery向它发送AJAX请求:
$.ajax({
type: "POST",
url: url + "GetServiceDetail",
data: JSON.stringify({}),
contentType: "application/json; charset=utf-8",
dataType: "json",
})
这通常可以正常使用。
当WebMethod
返回大约88KB的数据时,框架会向HTTP请求返回500 Internal Server Error
。 HTTP响应主体包含一堆JSON格式的.NET异常信息。反序列化时,响应具有以下信息:
System.InvalidOperationException
:使用JSON
JavaScriptSerializer
进行序列化或反序列化时出错。字符串的长度超过maxJsonLength
属性上设置的值。
at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, StringBuilder output, SerializationFormat serializationFormat)
at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, SerializationFormat serializationFormat)
at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)
at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)
WebMethod
中使用JavaScriptSerializer
。正如堆栈跟踪所示,异常发生在我的代码之外。答案 0 :(得分:2)
我通过在Web.config
中更改名为maxJsonlength
的属性来解决此问题:
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="4000000"/>
</webServices>
</scripting>
</system.web.extensions>
</configuration>