asp.net中http提交数据所遇到的那些坑

http提交数据有两种形式,get和post,不知道的同学请联系度娘。

1、aspnet:MaxHttpCollectionKeys

业务场景:业务很简单,手机端读取本地通讯录,将所有通讯录提交到后台,后台进行业务过滤,返回已属于当前用户好友所在的企业

服务端接口定义如下:

        [HttpPost]
        public List<string> IsInEnt([FromBody]List<string> mobilePhs)

问题描述:如果提交给后台的通讯录超过一定数量,后台接收到的mobilePhs为null,经过反复调试,发现到超过1000条通讯录,就会出现这样的问题,查了相关资料后发现,asp.net默认允许request中key的最大数量为1000。

解决方法:

在web.config中,添加一段配置:

    <!--请求提交的最大键值数-->
    <add key="aspnet:MaxHttpCollectionKeys" value="5000" />
    <!--请求提交的做大Json序列化属性数-->
    <add key="aspnet:MaxJsonDeserializerMembers" value="5000" />

2、ASPMaxRequestEntityAllowed

IIS6.0对提交数据长度也有限制,默认为200k,可在C:\Windows\system32\inesrv\metabase.xml中进行修改:

AspMaxRequestEntityAllowed="204800"

注:此配置有安全隐患,谨慎修改,一般200k数据是足够满足业务场景了,如果再大的数据,建议使用文件传输了。

3、未完待续。。。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。