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

这次一次.NET Framework MVC中的报错

猜测是框架默认会先将post请求中body携带的json进行解析,然后将解析后得到的参数填入对应接口的参数中

但是JavaScriptSerializer默认只能序列化2M内的json字符串,超过2M就会报错

解决方法1:修改maxJsonLength大小,改为5M

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

解决方法2:删除接口中的参数,绕过框架的默认json解析,改为自己解析

使用Request.QueryString获取Url中参数

Length = Convert.ToInt32(Request.QueryString["Length"])

使用Request.InputStream获取body中参数

Stream req = Request.InputStream;
req.Seek(0, System.IO.SeekOrigin.Begin);
json = new StreamReader(req).ReadToEnd();

posted @   奇迹之耀  阅读(526)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
历史上的今天:
2023-01-11 解决使用go get 下载模块下载超时的问题
点击右上角即可分享
微信分享提示