ASP.NET Coreアプリケーションで大きいサイズのファイルを送信するとエラーが発生する現象と対処法を紹介します。
ASP.NET Coreアプリケーションで大きなサイズのファイルアップロード時、WebAPI呼び出し時に大きなサイズのPOSTを送信すると、
以下のエラーが発生します。
アップロードサイズの制限を受けている可能性があります。
ASP.NET CoreアプリケーションのホストがIISの場合以下を確認します。
30MB程度のファイルアップロードでエラーになる場合、
Web.configファイルにmaxAllowedContentLength を追加します。
詳細は以下の記事を確認してください。
Web.configのmaxAllowedContentLength の設定でエラーが解消しない場合は、MultipartBodyLengthLimit の設定を記述します。
using Microsoft.AspNetCore.Http.Features;
namespace PngInfoWeb
{
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.Services.Configure<FormOptions>(options =>
{
//120MBまで許可
options.MultipartBodyLengthLimit = 120L * 1024L * 1024L;
});
var app = builder.Build();
app.UseStaticFiles();
app.UseRouting();
app.MapRazorPages();
app.Run();
}
}
}
Configureメソッドに与えるデリゲートに以下のコードを記述します。
options.MultipartBodyLengthLimit = 120L * 1024L * 1024L;
KestrelにWebアプリケーションがホストされている場合、Web.configは使われないため、以下の設定を確認します。
using Microsoft.AspNetCore.Http.Features;
namespace PngInfoWeb
{
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.WebHost.ConfigureKestrel(options =>
{
//120MBまで許可
options.Limits.MaxRequestBodySize = 120L * 1024L * 1024L;
});
var app = builder.Build();
app.UseStaticFiles();
app.UseRouting();
app.MapRazorPages();
app.Run();
}
}
}
ConfigureKestrelメソッドに与えるデリゲートに以下のコードを記述します。
options.Limits.MaxRequestBodySize = 120L * 1024L * 1024L;
これらの対策でエラーが買解消されるかを確認します。