Comment définir maxAllowedContentLength à 500 Mo lors de l'exécution sur IIS7?

94

J'ai changé le maxAllowedContentLength en

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

Dans mon web.config, mais lors de l'exécution sur IIS7, j'obtiens cette erreur:

L'attribut «maxAllowedContentLength» n'est pas valide. Pas un entier non signé valide

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

mais quand je cours dans le serveur VS, il fonctionne normalement sans aucune erreur.

Comment configurer mon site Web pour permettre le téléchargement de fichiers d'une taille de 500 Mo, sans ce problème sur IIS7?

Amr Elgarhy
la source
1
5024000000 (laissez-moi ajouter mille séparateurs) 5.024.000.000 est plus grand que le maximum int non signé 4.294.967.295, vous recherchez plutôt 502.400.000 comme valeur dans votre configuration (sans les milliers de séparateurs)
Lennart

Réponses:

97

Selon MSDN maxAllowedContentLength a le type uint, la valeur maximale est 4.294.967.295 octets = gb 3,99

Cela devrait donc fonctionner correctement.

Voir également l' article Limites de demande . IIS renvoie-t-il l'une de ces erreurs lorsque la section appropriée n'est pas configurée du tout?

Voir aussi: Dépassement de la longueur maximale de la demande

abatishchev
la source
donc cette valeur que j'ai 5024000000 est par gb?!
Amr Elgarhy
17
5024000000> 4294967295
Sam
2
500 Mo = 524288000 qui est maintenant inférieur à 4294967295
Amr Elgarhy
144

La limite des demandes dans .Net peut être configurée à partir de deux propriétés ensemble:

Première

  • Web.Config/system.web/httpRuntime/maxRequestLength
  • Unité de mesure: kilo-octets
  • Valeur par défaut 4096 Ko (4 Mo)
  • Max. valeur 2147483647 Ko (2 To)

Seconde

  • Web.Config/system.webServer/security/requestFiltering/requestLimits/maxAllowedContentLength (en octets)
  • Unité de mesure: octets
  • Valeur par défaut 30000000 octets (28,6 Mo)
  • Max. valeur 4294967295 octets (4 Go)

Références:

Exemple:

<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>
Anderson Rissardi
la source
4
Très utile, mais je pense que la valeur maximale de maxAllowedContentLength est d'environ 4 Go, et non de 4 To
Snicklefritz
L'article dit "Spécifie la longueur maximale du contenu dans une demande, en octets.". Signifie que les deux clés de configuration utilisent BYTES, ce qui donne la même taille de demande maximale, 4 Go.
abatishchev
10

IIS v10 (mais cela devrait également être le même pour IIS 7.x)

Ajout rapide pour les personnes qui recherchent des valeurs maximales respectives

Max pour maxAllowedContentLengthest: UInt32.MaxValue 🡒 4294967295 bytes:~4GB

Max pour maxRequestLengthest: 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>
Légendes
la source