作为一个优秀和完整的Web服务端框架,各种验证和安全机制是必须要考虑的,ASP.NET Core正是如此。
在提交表单的时候,报了这样一个错误:
Form key or value length limit 4194304 exceeded
仅从字面理解也大概能看出来是怎么回事,表单中的key或者value的长度超过限制了。
经常写.NET的程序应该想到解决办法:修改下默认设置。扒拉扒拉找到了设置的地方:
public void ConfigureServices(IServiceCollection services) { ... services.Configure<FormOptions>(options => { options.ValueCountLimit = int.MaxValue; options.ValueLengthLimit = int.MaxValue; options.KeyLengthLimit = int.MaxValue; options.MultipartBodyLengthLimit = int.MaxValue; options.MultipartBoundaryLengthLimit = int.MaxValue; }); ... }
就是这个FormOptions了,里边很多Limit,都设置成int.MaxValue。
聪明的你可能还会多想一下,为什么要有个限制呢?
这涉及到的是内存使用的问题,如果没有限制,内存可能就爆了,这显然不太安全。所以设置为int.MaxValue并不是一个好方案,需要按照实际情况来,给一个合适的最大值。
如果你还想了解更多细节,可以看看抛出这个异常时的处理逻辑,源代码在:
本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯马,原文地址《ASP.NET Core的坑之“Form key or value length limit 4194304 exceeded”》
复制或转载请以超链接形式注明转自波斯马,原文地址《ASP.NET Core的坑之“Form key or value length limit 4194304 exceeded”》
发表评论
相关文章
国内AI资源汇总,AI聊天、AI绘画、AI写作、AI视频、AI设计、AI编程、AI音乐等,国内顺畅访问,无需科学上网。
扫码或点击进入:萤火AI大全
文章分类
最新评论