現在、私はAsp.Net Coreで作業しており、MVC6はファイルサイズを無制限にアップロードする必要があります。私はその解決策を探しましたが、実際の答えはまだ得られていません。Asp.Netコアのアップロードファイルサイズを増やす
誰が助けてください任意のアイデアを持っている場合。
ありがとうございました。
現在、私はAsp.Net Coreで作業しており、MVC6はファイルサイズを無制限にアップロードする必要があります。私はその解決策を探しましたが、実際の答えはまだ得られていません。Asp.Netコアのアップロードファイルサイズを増やす
誰が助けてください任意のアイデアを持っている場合。
ありがとうございました。
30MBを超えるファイルをアップロードすると、おそらく404.13 HTTPステータスコードが表示されます。 IISでASP.Net Coreアプリケーションを実行している場合、アプリケーションにヒットする前にIISパイプラインが要求をインターセプトしています。
更新web.configファイルは:
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
<!-- Add this section for file size... -->
<security>
<requestFiltering>
<!-- Measured in Bytes -->
<requestLimits maxAllowedContentLength="1073741824" /> <!-- 1 GB-->
</requestFiltering>
</security>
</system.webServer>
前ASP.Netアプリケーションも、このセクションを必要に応じて、しかし、あなたの要求は、ミドルウェアによって処理されるように、コアにもはや必要ではないです:では
<system.web>
<!-- Measured in kilobytes -->
<httpRuntime maxRequestLength="1048576" />
</system.web>
アップロードファイルのサイズを増やしたい場合は、Visual Studio 2017で作成したASP.NET Core 1.1プロジェクトを使用します。あなたは自分でweb.configファイルを作成する必要があり、これらのコンテンツを追加します。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<!-- 1 GB -->
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
Startup.csファイルでは、これらのコンテンツを追加します。
public void ConfigureServices(IServiceCollection services)
{
services.Configure<FormOptions>(x =>
{
x.ValueLengthLimit = int.MaxValue;
x.MultipartBodyLengthLimit = int.MaxValue;
x.MultipartHeadersLengthLimit = int.MaxValue;
});
services.AddMvc();
}
web.configファイルの内容をGBません。の別の終了タグが必要で、
他の回答は、IISの制限を解決します。ただし、ASP.NET Core 2.0以降、Kestrelサーバーには独自の既定の制限があります。
Github of KestrelServerLimits.cs
Announcement of request body size limit and solution (quoted below)
あなたが特定のMVCアクションやコントローラの最大リクエストボディのサイズ制限を変更したい場合は、RequestSizeLimit
属性を使用することができます。以下の場合、MyAction
は最大100,000,000バイトのリクエストボディを受け入れることができます。
[HttpPost]
[RequestSizeLimit(100_000_000)]
public IActionResult MyAction([FromBody] MyViewModel data)
{
[DisableRequestSizeLimit]
は、リクエストサイズを無制限にするために使用できます。これにより、アトリビュートされたアクションまたはコントローラの2.0.0より前の動作が効果的にリストアされます。
要求がMVCアクションによって処理されていない場合、制限は依然としてIHttpMaxRequestBodySizeFeature
を使用して要求ごとに変更することができます。例:
app.Run(async context =>
{
context.Features.Get<IHttpMaxRequestBodySizeFeature>().MaxRequestBodySize = 100_000_000;
MaxRequestBodySize
はnull可です。 nullに設定すると、MVCの[DisableRequestSizeLimit]
のように制限が無効になります。
要求の制限は、アプリケーションがまだ読み込みを開始していない場合にのみ設定できます。それ以外の場合は例外がスローされます。MaxRequestBodySize
プロパティが読み取り専用状態にあるかどうかを示すIsReadOnly
プロパティがあります。これは、設定が遅すぎることを意味します。
あなたが世界的に最大リクエストボディのサイズを変更したい場合は、これはUseKestrel
またはUseHttpSys
のいずれかのコールバックでMaxRequestBodySize
プロパティを変更することで行うことができます。 MaxRequestBodySize
はどちらの場合もnullable longです。例えば:あなたはおそらく、30メガバイトを意味
.UseKestrel(options =>
{
options.Limits.MaxRequestBodySize = null;
または
.UseHttpSys(options =>
{
options.MaxRequestBodySize = 100_000_000;
、あなたが正しくないリスト – jao