我有[RequestSizeLimit]我的 API 控制器,它有点像预期的那样工作:大于指定限制的请求被拒绝。
[HttpPut]
[RequestSizeLimit(120_000_000)]
public async Task<IActionResult> Put(IFormCollection form)
{
...
}
问题是,抛出异常:
Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: Request body too large.
at Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException.Throw(RequestRejectionReason reason)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1MessageBody.ForContentLength.OnReadStarting()
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody.TryInit()
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody.ReadAsync(Memory`1 buffer, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpRequestStream.ReadAsyncInternal(Memory`1 buffer, CancellationToken cancellationToken)
因此返回 HTTP 500,但我希望返回 413 或 400。而且我不希望出现异常,因为这是完全正常的情况。
找不到有关此的任何文档。对于太大的请求,返回 413 的正确方法是什么?
侃侃尔雅
慕莱坞森
海绵宝宝撒
相关分类