3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

413.0 Request Entity Too Largeが出た時のIIS設定

Last updated at Posted at 2023-06-30

自分用のメモとして。

現象

ASP.NET Core MVCから、HttpClientを使って別のASP.NET Core APIとPOSTでHTTPS通信する際に次のエラーが起きた。
ファイルアップロードなどは行っておらず、1000個近いデータのリストをJSONでPOSTしている。

IIS 10.0 エラーの詳細 - 413.0 - Request Entity Too Large

主なポイント

  • HttpClient使用
  • HTTPS通信
  • POST(JSON)
  • ファイルアップロードはしていない

原因の分析

大量データの送信テスト中だったこともあり、エラー内容からも推察するに、この問題がリクエストデータ量が上限値を超えたことによって起きている可能性が高いと考え、いくつかの対策を実施して結果を見た。

結論

ApplicationHost.configに以下の設定をするとエラーが出なくなった。300kbが妥当かどうかは送信されるデータによる為、さらに検証が必要。

項目
セクション system.webServer/serverRuntime
場所 ApplicationHost.config
maxRequestEntityAllowed 307200 (300kb) (規定値=49152)
uploadReadAheadSize 307200 (300kb) (規定値=49152)

変更しても変化がなかったプロパティ

maxRequestLength (×)

項目
セクション system.web/httpRuntime
場所 Web.config
maxRequestLength 規定値=4096
変更した結果 規定値から最大値に変更しても変化なし。そもそも4096はkb指定であり、4MBは十分な値

※そもそもこれはASP.NET(ASP.NET Coreではなく)の設定値だった。ASP.NET CoreではmaxAllowedContentLengthを設定する。未だにSP.NETとCoreの情報が入り乱れており、大変…。

maxAllowedContentLength (×)

項目
セクション system.webServer/security/requestFiltering
場所 Web.config
requestLimits/maxAllowedContentLength 規定値=30000000
変更した結果 規定値から最大値に変更しても変化なし。そもそも規定で30MB近くあり、十分な値

解説

プロパティ 説明
maxRequestEntityAllowed IISの設定値で、リクエストのエンティティボディの最大バイト数を指定します。これは、HTTPリクエストヘッダーを含まないPOSTデータのサイズを制限するための設定です。
uploadReadAheadSize IISの設定値で、HTTP.sysがクライアントから読み取る、SSL接続で送られるリクエストエンティティボディの最大バイト数を指定します。これは主にSSL接続でのファイルアップロードサイズを制御します。
maxRequestLength ASP.NET(ASP.NET Coreではなく)のweb.config設定で、HTTPリクエストの最大長を指定します。この長さはキロバイト単位で指定されます。これは、アップロードされるファイルの最大サイズを制御するためのものです。
maxAllowedContentLength IISの設定値で、リクエストのコンテンツ(ボディ)の最大バイト数を指定します。これはHTTPリクエスト全体(ヘッダーとボディを含む)の最大サイズを制御します。
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?