ASP.NETアップロードファイル最大値調整

4605 ワード

まず、一番見つけやすいのはwebです.configは次のように構成されています.
    <!--maxRequestLength=50MB-->
    <httpRuntime targetFramework="4.5.2" maxRequestLength="51200"/>

このように設定すると、要求されたサイズはデフォルトの4 MB(4096 KB)から50 MB(51200 KB)に引き上げられます.
しかし、このように設定するだけでは、最大アップロードサイズが28.6 MBで停止し、より大きなファイルアップロードが404.13に戻り、コンテンツの長さが大きすぎることを示します.
なぜならIISのデフォルト設定でmaxAllowedContentLengthの値が限定されているからです.
<element name="requestLimits"><attribute name="maxAllowedContentLength" type="uint" defaultValue="30000000" />

この値はIIS_Schema.xmlで設定します.(コンピュータ全体に影響します)
IISEXpress:IISEXpress実行パスの下、C:Program Files(x 86)IIS ExpressconfigschemaIIS_schema.xml IIS7、8:C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml
この値を変更しても有効でない場合、2つの可能性があります.1つは、現在実行されているIISexpress/ISがオフ/再起動されていないことです.一つはwebです.configには、後述するように追加の構成があります.
 
しかし、グローバルな値を常に変更することなく、同じサーバ上の他のウェブサイトに影響を及ぼすことを避けるために、ウェブ上でもよい.configで構成します.
  <system.webServer>
    <!--
      IISExpress:C:\Users\UserName\Documents\IISExpress\config\applicationHost.config
      IIS7、8:C:\Windows\System32\inetsrv\config\applicationHost.config
      <section name="requestFiltering" overrideModeDefault="Allow" />
      overrideModeDefault    Allow   ,        。
      
          IIS_Schema.xml   。(        )
      IISExpress:IISExpress     ,C:\Program Files (x86)\IIS Express\config\schema\IIS_schema.xml
      IIS7、8:C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml
        defaultValue="30000000"(28.6MB)     。
      <element name="requestLimits"><attribute name="maxAllowedContentLength" type="uint" defaultValue="30000000" />
    -->
    <security>
      <requestFiltering>
        <!--maxAllowedContentLength=100MB-->
        <requestLimits maxAllowedContentLength="104857600"></requestLimits>
      </requestFiltering>
    </security>

このコンテンツを有効にするには、アプリケーションホストで「継承を許可」を構成する必要がある.configで
のキーワードを検索し、この値がAllowであることを確認します.
IISExpress:C:\Users\UserName\Documents\IISExpress\config\applicationHost.config IIS7、8:C:\Windows\System32\inetsrv\config\applicationHost.config
 
参考資料:
http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits
http://www.cnblogs.com/henryhappier/archive/2010/09/20/1832098.html
https://msdn.microsoft.com/en-us/library/ms689462(v=vs.90).aspx