解決.NET Core Ajax請求後臺傳送引數過大請求失敗問題

yinghualeihenmei發表於2024-07-01

原文連結:https://www.cnblogs.com/xiongze520/p/14500156.html

今天在專案上遇到一個坑,

在.Net Core中透過ajax向mvc的controller傳遞物件時,控制器(controller)的方法一直沒有進去,百思不得其解,

後面把傳遞的引數列印出來發現傳遞的引數比較大,有2.4M的資料,如下圖:

後面跟蹤專案發現web.config和Startup.cs裡面沒有設定資料傳輸大小(至於預設的資料大小是多少就沒深究了),

到這裡就明瞭了,就只要在web.config和Startup.cs裡面設定一下就好了,注意設定方法和.Net Formwork不同,具體操作如下:

web.config裡面新增,新增位置如圖:

<requestFiltering>
    <!-- 1GB-->
    <requestLimits maxAllowedContentLength="1073741822" />
  </requestFiltering>

  

Startup.cs裡面的ConfigureServices方法裡面新增,新增位置如圖:

/** begin xiongze 2021-03-08**************/
            //上傳檔案大小限制Kestrel設定
            services.Configure<KestrelServerOptions>(options =>
            {
                // Set the limit to 256 MB
                options.Limits.MaxRequestBodySize = 268435456;
            });
            //上傳檔案大小限制IIS設定
             services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            //解決檔案上傳Multipart body length limit 134217728 exceeded
            services.Configure<FormOptions>(x =>
            {
                x.ValueLengthLimit = int.MaxValue;
                x.MultipartBodyLengthLimit = int.MaxValue;
                x.MemoryBufferThreshold = int.MaxValue;
            });
            /** end xiongze 2021-03-08**************/

  

新增好後就可以執行了,如圖,終於進控制器(controller)的方法斷點了

相關文章