AspNetCore中关于请求大小限制设置

在我们接口上传文件时,就会遇到由于文件过大而不能上传,那么就需要去修改默认的大小限制。修改请求体的默认大小,需要根据不同方式的部署去修改不同的配置。比如IIS下部署,request => iis => iisServer => application,这三个地方都需要修改限制;dotnet命令运行:request => kestrel => application。(如果上面还有代理,那么也同样是需要修改默认的大小限制的)

一、web服务器配置,不同web服务器不同的设置

Kestrel,使用dotnet命令运行部署与在linux下直接运行部署时使用

services.Configure<KestrelServerOptions>(options =>
            {
                options.Limits.MaxRequestBodySize = null;//不做限制
            });
MaxRequestBodySize默认是28.6MB(30,000,000 bytes)

IISServer,使用IIS部署和在VS调试的IIS Express时使用

使用IIS Server需要配置两个地方,首先在程序中增加以下配置

services.Configure<IISServerOptions>(options =>
            {
                options.MaxRequestBodySize = null;//不做限制
            });

最后在IIS配置编辑器设置大小限制,我设置的是500M

二、应用程序(application

services.Configure<FormOptions>(x =>
            {
                x.ValueLengthLimit = int.MaxValue;
                x.MultipartBodyLengthLimit = int.MaxValue;
                x.MultipartHeadersLengthLimit = int.MaxValue;
            });
原文地址:https://www.cnblogs.com/liuzeqi/p/14817723.html