1. ホーム
  2. asp.net-mvc

[解決済み] System.Web.HttpException (0x80004005)。リクエストの最大長を超えました

2022-02-19 12:04:45

質問内容

ASP.NET MVC 5 アプリケーションで、サイズが 5.25 MB の mp4 ビデオ ファイルをアップロードしようとしています。

私は、この問題に対してほとんどの場合受け入れられている答えである Web.config ファイルにこれを追加しようとしました。

<system.web>
    <!-- This will handle requests up to 1024MB (1GB) -->
    <httpRuntime maxRequestLength="1048576" />
</system.web>

Web.configでタイムアウトも設定してみました。

<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />

しかし、ファイルをアップロードしようとすると、次のようなメッセージが表示されます。 System.Web.HttpException (0x80004005): Maximum request length exceeded.

もしかしたら、コントローラやビューに何か設定する必要があるのかもしれませんね。

コントローラーです。

[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
    if (file != null && file.ContentLength > 0)
    {
        var fileName = Path.GetFileName(file.FileName);
        if (fileName != null)
        {
            var path = Path.Combine(Server.MapPath("~/Content/Videos"), fileName);
            file.SaveAs(path);
        }
    }
    return RedirectToAction("Index");
}

表示します。

@using (Html.BeginForm("Edit", "Posts", FormMethod.Post, new { enctype =  "multipart/form-data" }))
{
    <input type="file" name="file" />
    <input type="submit" value="OK" />
}

ASP.NET MVC 5でビデオファイルをアップロードする方法は?

どのように解決するのですか?

web.configに以下を追加してください。

 <system.webServer>
   <security>
      <requestFiltering>
         <requestLimits maxAllowedContentLength="1073741824" />
      </requestFiltering>
   </security>
 </system.webServer>