【问题标题】:How to stop processing if JSON is too large如果 JSON 太大,如何停止处理
【发布时间】:2015-10-29 19:18:15
【问题描述】:

如果发布到控制器操作的 JSON 太大,我希望能够停止处理请求。

大小限制会有所不同,所以我不想在我的 web.config 中硬编码这个值

有没有办法检查我的控制器操作?假设我的限制是 100kb,如果超过了我不想浪费服务器 CPU,我只想停止并立即返回。

【问题讨论】:

  • 不幸的是,我不这么认为。问题在于,在创建 JSON 表示之前,无法知道它需要多大。
  • 同意@ChrisPratt,与人类可读的相比,这种缩小的 JSON 将占用更少的存储空间。您可能希望在将其转换为 JSON 之前限制执行。例如,如果您呈现项目列表,您可能希望限制项目的数量(使用分页等)。就在转换为 JSON 并将其发送到浏览器之前。

标签: c# asp.net json asp.net-mvc


【解决方案1】:

在Json类中有这样的设置(见下面的代码):

var jsonResult = Json(jsonString, JsonRequestBehavior.AllowGet);
jsonResult.maxJsonLength = int.MaxValue;
return jsonResult;

也可以在这样的配置中完成(Web.config):

<configuration> 
  <system.web.extensions>
   <scripting>
       <webServices>
           <jsonSerialization maxJsonLength="50000000"/>
       </webServices>
   </scripting>
  </system.web.extensions>
</configuration> 

【讨论】:

    猜你喜欢
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多