」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在ASP.NET Core中增加文件上傳大小限制?

如何在ASP.NET Core中增加文件上傳大小限制?

發佈於2025-02-12
瀏覽:173

How to Increase File Upload Size Limits in ASP.NET Core?

提升ASP.NET Core文件上傳大小限制

在ASP.NET Core中,您可能會遇到文件上傳大小限制。要解決此問題,您需要同時考慮Web服務器(IIS)和ASP.NET Core服務器(Kestrel)施加的限制。

IIS文件大小限制

如您提供的鏈接資源中所述,IIS對文件上傳大小有默認限制。要增加應用程序的此限制,請按照以下步驟操作:

  1. 打開IIS管理器。
  2. 導航到您的網站使用的應用程序池。
  3. 右鍵單擊並選擇“屬性”。
  4. 在“限制”選項卡上,增加“最大允許內容長度”的值。

Kestrel文件大小限制

從ASP.NET Core 2.0開始,Kestrel也對文件上傳施加了自己的限制。這些限制在KestrelServerLimits.cs文件中定義。

要增加Kestrel中的文件大小限制,您可以採用以下幾種方法:

MVC操作方法

在特定的MVC操作方法或控制器上使用[RequestSizeLimit]特性來覆蓋默認限制。例如:

[HttpPost]
[RequestSizeLimit(100_000_000)]
public IActionResult MyAction([FromBody] MyViewModel data)
{
}

通用中間件

使用IHttpMaxRequestBodySizeFeature特性來修改每個請求的限制:

app.Run(async context =>
{
    context.Features.Get().MaxRequestBodySize = 100_000_000;
});

全局配置

UseKestrelUseHttpSys的回調函數中修改MaxRequestBodySize屬性來全局設置限制:

.UseKestrel(options =>
{
    options.Limits.MaxRequestBodySize = null; // 无限制
});

.UseHttpSys(options =>
{
    options.MaxRequestBodySize = 100_000_000;
});

通過以上步驟,您可以同時增加ASP.NET Core中Web服務器和Kestrel服務器的文件上傳大小限制。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3