【问题标题】:JSON JavaScriptSerializer maxJsonLength exception (but very small payload)JSON JavaScriptSerializer maxJsonLength 异常(但负载非常小)
【发布时间】:2018-01-27 11:23:06
【问题描述】:

我在 MVC5 中遇到了一个间歇性问题,JSON 解析器抛出了 System.InvalidOperationException:

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

直截了当,但是当我查看请求详细信息时,我不知道为什么会发生这种情况,因为有效负载非常小:

(不确定如何从 chrome 调试器抓取原始请求,所以):

响应很简单:

对可能导致这种情况的不太正常的事情有任何想法吗?

【问题讨论】:

  • 循环引用?
  • @AluanHaddad - 也许,但不确定如何。我只是把它缩小到它只发生在某些搜索字段填写后提交的情况下,所以这是一个线索。
  • 你应该使用Newtonsoft.Json

标签: json ajax asp.net-mvc


【解决方案1】:

问题不在于 JSON 请求的大小,而在于 JSON 响应的大小。

return Json(model);

这个模型太大了,这就是异常的来源(为什么这没有在调试实例中引发或记录我必须调查的异常......)

【讨论】:

  • 记得接受你自己的答案。出于好奇,您是如何解决的?
  • @garfbradaz 原来我们有一个过滤标准被遗漏了,所以所有结果都显示(320k+)。修复:1)编写测试以确保过滤条件。 2) 实现一个 maxResults 配置,3) 编写测试以确保 maxResults 实现,3) 提供 UI 通知,即必须优化搜索,省略一些结果。 (可以在 2 天后接受答复)。
猜你喜欢
  • 1970-01-01
  • 2018-01-18
  • 1970-01-01
  • 1970-01-01
  • 2014-06-04
  • 1970-01-01
  • 2016-01-22
  • 2014-04-11
  • 1970-01-01
相关资源
最近更新 更多