Come impostare maxAllowedContentLength su 500 MB durante l'esecuzione su IIS7?


94

Ho cambiato maxAllowedContentLength in

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

Nel mio web.config, ma quando sono in esecuzione su IIS7 ottengo questo errore:

L'attributo "maxAllowedContentLength" non è valido. Non è un numero intero senza segno valido

http://i.stack.imgur.com/u1ZFe.jpg

ma quando corro nel server VS funziona normalmente senza errori.

Come configurare il mio sito Web per consentire il caricamento di file con dimensioni di 500 MB, senza questo problema su IIS7?


5024000000 (lasciami aggiungere mille separatori) 5.024.000.000 è maggiore del massimo unsigned int 4.294.967.295, stai cercando 502.400.000 come valore nella tua configurazione invece (senza i mille separatori)
Lennart

Risposte:


97

Secondo MSDN maxAllowedContentLength ha il tipo uint, il suo valore massimo è 4.294.967.295 byte = 3,99 GB

Quindi dovrebbe funzionare bene.

Vedi anche l' articolo sui limiti della richiesta . IIS restituisce uno di questi errori quando la sezione appropriata non è configurata affatto?

Vedi anche: Lunghezza massima richiesta superata


quindi questo valore che ho 5024000000 è di GB ?!
Amr Elgarhy

16
5024000000> 4294967295
Sam

2
500 MB = 524288000 che ora è inferiore a 4294967295
Amr Elgarhy,

144

Il limite di richieste in .Net può essere configurato da due proprietà insieme:

Primo

  • Web.Config/system.web/httpRuntime/maxRequestLength
  • Unità di misura: kilobyte
  • Valore predefinito 4096 KB (4 MB)
  • Max. valore 2147483647 KB (2 TB)

Secondo

  • Web.Config/system.webServer/security/requestFiltering/requestLimits/maxAllowedContentLength (in byte)
  • Unità di misura: byte
  • Valore predefinito 30000000 byte (28,6 MB)
  • Max. valore 4294967295 byte (4 GB)

Riferimenti:

Esempio:

<location path="upl">
   <system.web>
     <!--The default size is 4096 kilobytes (4 MB). MaxValue is 2147483647 KB (2 TB)-->
     <!-- 100 MB in kilobytes -->
     <httpRuntime maxRequestLength="102400" />
   </system.web>
   <system.webServer>
     <security>
       <requestFiltering>          
         <!--The default size is 30000000 bytes (28.6 MB). MaxValue is 4294967295 bytes (4 GB)-->
         <!-- 100 MB in bytes -->
         <requestLimits maxAllowedContentLength="104857600" />
       </requestFiltering>
     </security>
   </system.webServer>
 </location>

4
Molto utile, tuttavia credo che il valore massimo per maxAllowedContentLength sia di circa 4 GB, non 4 TB
Snicklefritz

L'articolo dice "Specifica la lunghezza massima del contenuto in una richiesta, in byte.". Significa che entrambe le chiavi di configurazione utilizzano BYTES rendendo la dimensione massima della richiesta uguale, 4 GB.
abatishchev

9

IIS v10 (ma dovrebbe essere lo stesso anche per IIS 7.x)

Aggiunta rapida per le persone che cercano i rispettivi valori massimi

Il massimo per maxAllowedContentLengthè: UInt32.MaxValue 🡒 4294967295 bytes:~4GB

Il massimo per maxRequestLengthè: Int32.MaxValue🡒 2147483647 bytes:~2GB

web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <!-- ~ 2GB -->
    <httpRuntime maxRequestLength="2147483647" />
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- ~ 4GB -->
        <requestLimits maxAllowedContentLength="4294967295" />
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.