ASP.NETで「Web.HttpRequest.GetEntireRawContent()」のエラーが発生

ASP.NETのアプリで、アプリケーションがクラッシュした。出力しているログをみても、下記のような程度しかエラーが出ていない。コーディングしたところとは無関係なエラーが出力されてきた。

2023-02-XX 10:mm:ss,sss ERROR :  - Global_asax.Application_Error[xx] :    場所 System.Web.HttpRequest.GetEntireRawContent() 
   場所 System.Web.HttpRequest.GetMultipartContent() 
   場所 System.Web.HttpRequest.FillInFormCollection() 
   場所 System.Web.HttpRequest.EnsureForm() 
   場所 System.Web.HttpRequest.get_Form() 
   場所 System.Web.HttpRequest.get_HasForm() 
   場所 System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) 
   場所 System.Web.UI.Page.DeterminePostBackMode() 
   場所 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

調べたところ、ファイルのアップロードで発生しており、「Web.HttpRequest.GetEntireRawContent()」のところで、POSTされてきた要求のサイズが大きすぎて、クラッシュしていることがわかった。

調べてみると、IISの設定では、デフォルトでPOSTサイズは30MBまで。ASP.NETでは、デフォルトで4MBまで、だった。アップロードのファイルサイズが数メガあり、POSTサイズを超えたのが原因だった。

対応としては、アップロードするファイルサイズを制限するか、ASP.NETの設定(web.config)を変えて、もっと大きいファイルサイズをアップロードできるようにするか、だ。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする