提升ASP.NET Core文件上傳大小限制
在ASP.NET Core中,您可能會遇到文件上傳大小限制。要解決此問題,您需要同時考慮Web服務器(IIS)和ASP.NET Core服務器(Kestrel)施加的限制。
IIS文件大小限制
如您提供的鏈接資源中所述,IIS對文件上傳大小有默認限制。要增加應用程序的此限制,請按照以下步驟操作:
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;
});
全局配置
在UseKestrel
或UseHttpSys
的回調函數中修改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