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、未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值