[ASP.NET Core] 请求大小限制(转载)

原文链接:https://www.cnblogs.com/riddly/p/17467420.html

请求大小一般在文件上传的时候会用到,当然也防止传过来的参数过大情况。

一、设置请求体的最大值

(在HTTP请求中,如果需要将数据从客户端(如,浏览器)发送给API,则我们会将其作为“请求体(request body)”发送。

请求体是客户端发送给API的数据;响应体是API发送给客户端的数据。)

如果不设置请求体大小默认是 30_000_000 bytes,大约28.6MB,当超出大小时会出现如下错误:

错误:Failed to read the request form. Request body too large. The max request body size is 30000000 bytes.

解决方案:

builder.WebHost.ConfigureKestrel((context, options) =>
{
    //设置最大1G, 这里的单位是byte
    options.Limits.MaxRequestBodySize = 1073741824;
});

  如果传参用的不是表单的形式(如文件上传)这样处理是足够了的,如果是则还需要设置表单的最大长度。

二、设置表单的最大值

如果不设置表单长度默认是 134,217,728 bytes,大约128MB,当超出大小时会出现如下错误:

错误:Failed to read the request form. Multipart body length limit 134217728 exceeded.

解决方案:

builder.Services.Configure<FormOptions>(option =>
{
    //设置最大1G, 这里的单位是byte
    option.MultipartBodyLengthLimit = 1073741824;
});

 三、IIS下的配置

如果是挂在IIS下,还需如下操作:

修改C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml中maxAllowedContentLength的大小;
修改项目web.config配置system.webServer/serverRuntime/maxRequestEntityAllowed的大小;
修改项目web.config配置system.web/httpRuntime/maxRequestLength的大小;
重启IIS。

  

posted @ 2024-07-01 13:50  yinghualeihenmei  阅读(8)  评论(0编辑  收藏  举报