.NetCore上傳大文件 413 Request Entity Too Large 錯誤處理


本文實例環境及版本.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

 

才疏學淺,相關文檔等僅供自我總結,如有相關問題可留言交流謝謝。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM