本文實例環境及版本.NetCore3.1
錯誤如下:
處理方式如下
修改Startup->ConfigureServices添加
services.Configure<FormOptions>(options => { //值長度限制 options.ValueLengthLimit = int.MaxValue; //每個多部分正文的長度限制 默認值約為128MB options.MultipartBodyLengthLimit = 1073741824; //此處限制最大1G });
在Program中修改如下
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { //設置Kestrel文件上傳大小 webBuilder.ConfigureKestrel((context, options) => {
// 獲取或設置任何請求正文的最大允許大小(以字節為單位)。 設置為 null 時,最大請求正文大小不受限制
// 默認為 30000000 字節 大約為 28.6MB
options.Limits.MaxRequestBodySize = 1073741824; //限制1G //options.Limits.MaxRequestBodySize = null; //表示不限制 }); webBuilder.UseStartup<Startup>(); });
修改如上后,還要注意以下情況
1、如果是在VS中調試的項目
需要修改項目根目錄 .vs\YundiErp\config\applicationhost.config 中找到<requestFiltering>節點添加
<requestLimits maxAllowedContentLength="1073741824" />
2、如果是發布到IIS上的項目
找到web.config在<system.webServer>節點下添加。注意以后每次發布不要覆蓋掉該web.config
<requestFiltering> <requestLimits maxAllowedContentLength="1073741824" /> </requestFiltering>
修改IIS中配置->配置編輯器 system.webServer/serverRuntime 節點
修改ASP中修改最大請求實體主體限制
3、如果是使用了nginx
還需修改配置 client_max_body_size 1024m; //文件大小限制,默認1m
才疏學淺,相關文檔等僅供自我總結,如有相關問題可留言交流謝謝。