最大リクエスト長を超えました 私のサイトにビデオをアップロードしようとしているときにエラーが発生します。
これをどのように修正しますか?
アプリケーションのホスティングに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相当)
私はそれがここで言及されているとは思いませんが、これを機能させるために、私は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 を持ちます。
明らかですが、見落としがちです。
サイト全体ではなく、アップロードに使用されると予想される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>
念のために、誰かがこの例外を処理してユーザーに意味のある説明を表示する方法を探しています(「アップロードするファイルが大きすぎます」など)。
//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以降が必要です)
最大要求サイズは、デフォルトで4MB(4096 KB)です。
これはここで説明されています: http://support.Microsoft.com/default.aspx?scid=kb;EN-US;295626
上記の記事はまたこの問題を解決する方法を説明します:)
アップロードされたファイルの最大サイズを設定するためのweb.configの要素があります。
<httpRuntime
maxRequestLength="1048576"
/>
設定ファイルを更新できないがファイルのアップロードを処理するコードを制御する場合はHttpContext.Current.Request.GetBufferlessInputStream(true)
を使用してください。
true
パラメーターのdisableMaxRequestLength
値は、構成済みの要求制限を無視するようにフレームワークに指示します。
詳細な説明については https://msdn.Microsoft.com/ja-jp/library/hh195568(v=vs.110).aspx をご覧ください。
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>
すべての答えを一箇所にまとめるには:
<system.web>
<httpRuntime targetFramework="4.5.2" maxRequestLength="1048576"/>
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
</system.webServer>
規則:
ノート:
more info _ msdn _
それは何日も私を悩ませた。 Web.configファイルを変更しましたが、うまくいきませんでした。私のプロジェクトには2つのWeb.configファイルがあり、他のファイルではなく _ root _ ディレクトリにあるファイルを変更する必要があることがわかりました。これが役立つことを願っています。
サイト内のアプリケーションにリクエストを送信する場合は、ルートweb.configでmaxRequestLengthを設定してください。アプリケーションのweb.config内のmaxRequestLengthは無視されるようです。
Web.configファイルに複数のsystem.webセクションがあることに私は驚きました。<httpRuntime maxRequestLength = "1048576" />を構成レベルでsystem.webセクションに追加したときにうまくいきました。
C:\Windows\System32\inetsrv\config\applicationHost.config
ファイルを編集して、最後に<requestLimits maxAllowedContentLength="1073741824" />
を追加する必要がありました。
<configuration>
<system.webServer>
<security>
<requestFiltering>
セクション。
のように このマイクロソフトサポート記事