1

我有一个 ASP.NET 项目,其中一些 AJAX 调用了一个 webmethod,它将返回 JSON。

如果DataSet有大约 100 行,则没有问题。但是有 1000 行,它会启动错误:

使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的大小超过了 maxJsonLength 属性中设置的值

    [WebMethod(EnableSession = true)]
    public static string PublicWebMethod()
    {
            DataSet ds = new DataSet(); // in the reality do a mountrous query

            if (ds.Tables[0].Rows.Count > 0)
            {
                return JsonConvert.SerializeObject(clsUtil.ToArray(ds.Tables[0]));
            }
            else
            {
                return "false";
            }
        }
    }

如何通过在方法中设置配置来解决这个问题?

我不想改变web.config

4

1 回答 1

2

我遇到了类似的问题,花了一段时间才找出问题并修复。请在后面加上以下代码

<system.web.extensions>
  <scripting>
    <webServices>
      <jsonSerialization maxJsonLength="50000000" />
    </webServices>
  </scripting>
</system.web.extensions>
于 2018-12-06T20:55:01.340 回答