web-dev-qa-db-ja.com

最大要求長を超えました。

最大リクエスト長を超えました 私のサイトにビデオをアップロードしようとしているときにエラーが発生します。

これをどのように修正しますか?

952
Surya sasidhar

アプリケーションのホスティングにIISを使用している場合、デフォルトのアップロードファイルサイズは4 MBです。それを増やすには、あなたのweb.configの以下のセクションを使ってください -

<configuration>
    <system.web>
        <httpRuntime maxRequestLength="1048576" />
    </system.web>
</configuration>

IIS 7以降の場合は、以下の行も追加する必要があります。

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

注意

  • maxRequestLengthの単位は キロバイト
  • maxAllowedContentLengthの単位は バイト

この設定例では値が異なるのはこのためです。 (どちらも1 GB相当)

1808
Sachin Shanbhag

私はそれがここで言及されているとは思いませんが、これを機能させるために、私はweb.configでこれらの値の両方を供給しなければなりませんでした:

system.web

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

そしてsystem.webServerでは

<security>
    <requestFiltering>
        <requestLimits maxAllowedContentLength="1073741824" />
    </requestFiltering>
</security>

_ important _ :両方の値が一致している必要があります。この場合、私の最大アップロードは1024メガバイトです。

maxRequestLengthは 1048576 KILOBYTES 、maxAllowedContentLengthは 1073741824 BYTES を持ちます。

明らかですが、見落としがちです。

525
Karl

サイト全体ではなく、アップロードに使用されると予想されるURLにこの変更を制限することをお勧めします。

<location path="Documents/Upload">
  <system.web>
    <!-- 50MB in kilobytes, default is 4096 or 4MB-->
    <httpRuntime maxRequestLength="51200" />
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- 50MB in bytes, default is 30000000 or approx. 28.6102 Mb-->
        <requestLimits maxAllowedContentLength="52428800" /> 
      </requestFiltering>
    </security>
  </system.webServer>
</location>
182
Nick Albrecht

念のために、誰かがこの例外を処理してユーザーに意味のある説明を表示する方法を探しています(「アップロードするファイルが大きすぎます」など)。

//Global.asax
private void Application_Error(object sender, EventArgs e)
{
    var ex = Server.GetLastError();
    var httpException = ex as HttpException ?? ex.InnerException as HttpException;
    if(httpException == null) return;

    if(httpException.WebEventCode == WebEventCodes.RuntimeErrorPostTooLarge)
    {
        //handle the error
        Response.Write("Too big a file, dude"); //for example
    }
}

(ASP.NET 4以降が必要です)

39
Serge Shultz

最大要求サイズは、デフォルトで4MB(4096 KB)です。

これはここで説明されています: http://support.Microsoft.com/default.aspx?scid=kb;EN-US;295626

上記の記事はまたこの問題を解決する方法を説明します:)

26
Dave

アップロードされたファイルの最大サイズを設定するためのweb.configの要素があります。

<httpRuntime 
    maxRequestLength="1048576"
  />
18
ema

設定ファイルを更新できないがファイルのアップロードを処理するコードを制御する場合はHttpContext.Current.Request.GetBufferlessInputStream(true)を使用してください。

trueパラメーターのdisableMaxRequestLength値は、構成済みの要求制限を無視するようにフレームワークに指示します。

詳細な説明については https://msdn.Microsoft.com/ja-jp/library/hh195568(v=vs.110).aspx をご覧ください。

16
Sergey Tarasov

maxRequestLength(KB単位の長さ)ここでは例として。私は1024(1MB)maxAllowedContentLength(バイト単位の長さ)をあなたのmaxRequestLength(1048576バイト= 1MB)と同じであるべきだと考えました。

<system.web>
   <httpRuntime maxRequestLength="1024" executionTimeout="3600" />
</system.web>

<system.webServer>
   <security>
      <requestFiltering>
          <requestLimits maxAllowedContentLength="1048576"/>
      </requestFiltering>
   </security>
</system.webServer>
8
UniCoder

すべての答えを一箇所にまとめるには:

<system.web>
  <httpRuntime targetFramework="4.5.2" maxRequestLength="1048576"/>
</system.web>

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

規則:

  • maxRequestLength(kbで表示)の値は、maxAllowedContentLength(バイトで表示)と一致する必要があります。
  • ほとんどの場合、system.webセクションには既に "httpRuntime"が含まれています。 targetFrameworkを使用している.netのバージョンに設定します。

ノート:

  • maxRequestLengthのデフォルト値は4096(4mb)です。最大値は2,147,483,647です
  • maxAllowedContentLengthのデフォルト値は30,000,000(約30mb)です。最大値は4,294,967,295です

more info _ msdn _

6
BernieSF

それは何日も私を悩ませた。 Web.configファイルを変更しましたが、うまくいきませんでした。私のプロジェクトには2つのWeb.configファイルがあり、他のファイルではなく _ root _ ディレクトリにあるファイルを変更する必要があることがわかりました。これが役立つことを願っています。

6
NiaoBlush

サイト内のアプリケーションにリクエストを送信する場合は、ルートweb.configでmaxRequestLengthを設定してください。アプリケーションのweb.config内のmaxRequestLengthは無視されるようです。

5
mhenry1384

Web.configファイルに複数のsystem.webセクションがあることに私は驚きました。<httpRuntime maxRequestLength = "1048576" />を構成レベルでsystem.webセクションに追加したときにうまくいきました。

1
Graham Laight

C:\Windows\System32\inetsrv\config\applicationHost.configファイルを編集して、最後に<requestLimits maxAllowedContentLength="1073741824" />を追加する必要がありました。

<configuration>
    <system.webServer>
        <security>
            <requestFiltering>

セクション。

のように このマイクロソフトサポート記事

1
HyperActive