[英]Asp.net Core RequestSizeLimit still executes action
我正在使用ASP.net Core 2.0和MVC。 我有一个控制器操作,我想将请求大小限制为1MB。 我添加了RequestSizeLimit
属性,如下所示:
[HttpPost]
[Authorize]
[RequestSizeLimit(1_000_000)]
public async Task<List<ResourceUploadResult>> Upload([FromBody]List<Resource> updatedList){
//....
}
当上传<1MB时,它按预期工作。 当它大于1MB时,我希望服务器返回413的状态,但是相反, updatedList
参数为null并且操作正常执行,当它尝试迭代列表时运行NullReferenceException
。
当达到大小限制时,有没有办法告诉Kestrel返回413?
可能不是最好的,但它会同时起作用。
if(updatedList == null)
return StatusCode(413, "Payload to big") ;
你可以通过全局限制大小
.UseKestrel(kestrolOptions =>
{
kestrolOptions.Limits.MaxRequestBodySize = 1_000_000;
..
当我升级到2.1时,问题就消失了。 我不能肯定地说2.0有一个bug,但是在将所有NuGet包更新到2.1之后它表现得如预期的那样。
遗憾的是我没有关于原因的更多信息,因为其他寻求解决此问题的人可能无法像我一样升级他们的版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.