web-dev-qa-db-ja.com

ASP.NETで最大アップロードファイルサイズを増やす方法

ASP.NETでのファイルのアップロードを除くフォームがあります。最大アップロードサイズをデフォルトの4 MBより大きくする必要があります。

msdn で以下のコードを参照しているところがいくつかあります。

[ConfigurationPropertyAttribute("maxRequestLength", DefaultValue = )]

どの文献にも実際の使用方法が記載されていないので、いくつか試してみましたが成功しませんでした。ファイルのアップロードを要求している特定のページについてのみ、この属性を変更したいです。

これは正しいルートですか?そしてこれをどうやって使うのですか?

217
Eddie

この設定はweb.configファイルにあります。それはアプリケーション全体に影響を与えますが、...ページごとに設定できるとは思いません。

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

"xxx"はKB単位です。デフォルトは4096(= 4 MB)です。

381

IIS 7+の場合は、httpRuntime maxRequestLength設定を追加するだけでなく、追加する必要もあります。

  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="52428800" /> <!--50MB-->
      </requestFiltering>
    </security>
  </system.webServer>

またはIIS(7)の場合:

  • 大きなファイルのアップロードを許可するようにしたいWebサイトを選択します。
  • メインウィンドウで「Request filtering」をダブルクリックします。
  • [機能設定の編集]を選択します
  • 「最大許容コンテンツ長(バイト)」を変更します。
167
4imble

アップロードファイルのサイズ制限を増やすには、2つの方法があります。

1。 IIS 6以下

デフォルトでは、ASP.Netではサーバーにアップロードされるファイルの最大サイズはおよそ4MBです。この値は、web.configmaxRequestLength属性を変更することによって増やすことができます。

覚えておいてください:maxRequestLenghtはKB単位です

:アップロードを15MBに制限したい場合は、maxRequestLengthを“ 15360”(15 x 1024)に設定してください。

<system.web>
   <!-- maxRequestLength for asp.net, in KB --> 
   <httpRuntime maxRequestLength="15360" ></httpRuntime> 
</system.web>

2。 IIS7以上

ここでファイルをアップロードするために使用されるわずかに異なる方法が導入されましたrequest filtering module。ASP.Netの前に実行された方法はパイプラインが機能する方法を意味しますIIS値( - maxAllowedContentLength)最初にチェックされ、次にASP.NET値(maxRequestLength)がチェックされます。maxAllowedContentLength属性のデフォルトは28.61 MBです。この値は両方を変更することで増やすことができます。同じ属性web.config

覚えておいてください:maxAllowedContentLengthはバイト単位です

:アップロードを15MBに制限したい場合は、maxRequestLengthを "15360"に、maxAllowedContentLengthを "15728640"(15 x 1024 x 1024)に設定してください。

<system.web>
   <!-- maxRequestLength for asp.net, in KB --> 
   <httpRuntime maxRequestLength="15360" ></httpRuntime> 
</system.web>

<system.webServer>              
   <security> 
      <requestFiltering> 
         <!-- maxAllowedContentLength, for IIS, in bytes --> 
         <requestLimits maxAllowedContentLength="15728640" ></requestLimits>
      </requestFiltering> 
   </security>
</system.webServer>

MSDN参照リンクhttps://msdn.Microsoft.com/ja-jp/library/e1f13641(VS.80).aspx

66
Malik Khalil

Web.configのこの行が最大アップロードサイズを設定すると思います。

<system.web>

        <httpRuntime maxRequestLength="600000"/>
</system.web>
16
ben

あなたのアプリケーションのweb.configで、2Gbの上限のために:

<system.web>
  <compilation debug="true" targetFramework="4.5" />
  <httpRuntime targetFramework="4.5" maxRequestLength="2147483647" executionTimeout="1600" requestLengthDiskThreshold="2147483647" />
</system.web>

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="2147483647" />
    </requestFiltering>
  </security>
</system.webServer>
10
cangosta

Windows 2003/IIS 6.0の場合は、フォルダC:\ windows\system32\inetsrv \にあるファイルmetabase.xmlでAspMaxRequestEntityAllowed = "204800"をチェックしてください。

私の意見では、 "204800"(〜205Kb)のデフォルト値はほとんどのユーザーにとって低すぎる。ただあなたが最大になるべきだと思うものに値を変更してください。

編集後にファイルを保存できない場合は、ISSサーバーを停止するか、サーバーでファイルの編集を許可する必要があります。

alt text
(出典: itmaskinen.se

編集:私は質問を正しく読みませんでした(webconfigでmaxrequestを設定する方法)。しかし、この情報は他の人々、彼らのサイトをwin2000-serverからwin2003に移動してアップロード機能が働いていて突然突然Request.BinaryRead Failedエラーになった人々にとっては邪魔になるかもしれません。それを使用しています。それで私は答えをここに残します。

7
Stefan

私は勝つ2008 IISサーバーで同じ問題を抱えています、私はweb.configにこの設定を追加する問題を解決しました:

<system.web>
    <httpRuntime executionTimeout="3600" maxRequestLength="102400" 
     appRequestQueueLimit="100" requestValidationMode="2.0"
     requestLengthDiskThreshold="10024000"/>
</system.web>

requestLengthDiskThresholdはデフォルトで80000バイトなので、私のアプリケーションには小さすぎます。 requestLengthDiskThresholdはバイト単位で測定され、maxRequestLengthはKバイト単位で表されます。

アプリケーションがSystem.Web.UI.HtmlControls.HtmlInputFileサーバーコンポーネントを使用している場合、問題が存在します。それを解決するには、requestLengthDiskThresholdを大きくする必要があります。

4
Max Zerbini

Framework 4.6を使用している場合

<httpRuntime targetFramework="4.6.1" requestValidationMode="2.0" maxRequestLength="10485760"  />
3
mbadeveloper

私はそれが古い質問であることを知っています。

だからこれはあなたがしなければならないことです:

あなたのweb.configファイルで、これを追加してください:

    <!-- 3GB Files / in kilobyte (3072*1024) -->
    <httpRuntime targetFramework="4.5" maxRequestLength="3145728"/>

そしてこれの下

<security>
    <requestFiltering>

      <!-- 3GB Files / in byte (3072*1024*1024) -->
      <requestLimits maxAllowedContentLength="3221225472" />

    </requestFiltering>
</security>

あなたはコメントでこれがどのように機能するかを見ます。一方ではsieをバイト単位で、もう一方をKB単位で持つ必要があります。それが役立つことを願っています。

3
damir

アプリケーションのweb.configファイルにそのコードブロックを書くことができます。

<httpRuntime maxRequestLength="2048576000" />
<sessionState timeout="3600"  />

そのコードを書くことによって、あなたは今より大きなファイルをアップロードすることができます

2
user3683243

シェアポイントを使用する場合は、管理ツールでも最大サイズを設定する必要があります。 kb92508

0
Quiz

最大ファイルサイズは、単一のMVCコントローラまたはアクションにさえ制限することができます。
web.config <location>タグはこれに使用できます。

<location path="YourAreaName/YourControllerName>/YourActionName>">
  <system.web>
    <!-- 15MB maxRequestLength for asp.net, in KB 15360 -->
    <httpRuntime maxRequestLength="15360" />
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- 15MB maxAllowedContentLength, for IIS, in bytes 15728640 -->
        <requestLimits maxAllowedContentLength="15728640" />
      </requestFiltering>
    </security>
  </system.webServer>
</location>

あるいは、これらのエントリをarea自身のweb.configに追加することもできます。

0
Martin

それがあなたのローカルマシンで動作し、IISで展開後に動作しない場合(私はWindows Server 2008 R2を使用しました)私は解決策を持っています。

開くIIS(inetmgr)右側に移動します。コンテンツ(要求フィルタリング)に行きます。機能設定の編集に行きます。最大コンテンツサイズの変更(必要なバイト数)これはうまくいきます。また、次のスレッドから助けを借りることができます http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits

0
Rahat Ali

私はどのように aspアップロードコントロールのファイルサイズを増やす かについてのブログ投稿をしています。

投稿から:

デフォルトでは、FileUploadコントロールは最大4MBのファイルのアップロードを許可し、実行タイムアウトは110秒です。これらのプロパティは、web.configファイルのhttpRuntimeセクション内から変更できます。 maxRequestLengthプロパティは、アップロードできる最大ファイルサイズを決定します。 executionTimeoutプロパティは、実行の最大時間を決定します。

0
sk1900