在我們接口上傳文件時,就會遇到由於文件過大而不能上傳,那么就需要去修改默認的大小限制。修改請求體的默認大小,需要根據不同方式的部署去修改不同的配置。比如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; });