web-dev-qa-db-ja.com

Kestrelでアップロードリクエストの長さ制限を増やす

ASP.NET Core Webアプリを実行していますが、大きなファイルをアップロードしたいです。

IISを実行しているときに、web.configを介して制限を変更できることを知っています。

<httpRuntime maxRequestLength="1048576" /> 
...
<requestLimits maxAllowedContentLength="1073741824" /> 

新しいASP.NET Core Kestrel Webサーバーの実行中に同等の操作を行うにはどうすればよいですか?

例外が表示されます "リクエスト本文が大きすぎます。"

20
ToddBFisher

この役立つ発表 は、ASP.NET Core 2.0から28.6 MBのボディサイズ制限があることを確認しましたが、さらに重要なことはそれを回避する方法を示しています!

要約する:

単一のコントローラーまたはアクションの場合、 _[DisableRequestSizeLimit]_ 属性を使用して制限を設定しないか、 [RequestSizeLimit(100_000_000)] を使用してカスタム制限を指定します。

グローバルに変更するには、BuildWebHost()メソッド内、_Program.cs_ファイル内で、以下の_.UseKestrel_オプションを追加します。

_WebHost.CreateDefaultBuilder(args)
  .UseStartup<Startup>()
  .UseKestrel(options =>
  {
    options.Limits.MaxRequestBodySize = null;
  }
_

さらに明確にするために、 Kestrel options documentation も参照できます。

47
ToddBFisher