web-dev-qa-db-fra.com

Qui obtient la priorité, maxRequestLength ou maxAllowedContentLength?

En modifiant la taille de fichier maximale autorisée pour le téléchargement, je suis tombé sur ces deux paramètres.

Dans le système sytem.web , vous avez le nœud http runtime avec - maxRequestLength. Dans le system.webServer , vous avez le requestLimits avec maxAllowedContentLength.

Maintenant, qui a la priorité sur l'autre? Et devons-nous définir les deux ou le dernier (celui de IIS7) est-il suffisant?

124
Floris Devriendt

maxRequestLength indique la taille maximale de la demande prise en charge par ASP.NET, alors que maxAllowedContentLength spécifie la longueur maximale du contenu d'une demande prise en charge par IIS. Vous devez donc définir les deux afin de pouvoir télécharger des fichiers volumineux: le plus petit "a la priorité".

(J'ai ramassé ceci de http://forums.iis.net/t/1169846.aspx - crédit si c'est dû.)

Vous pouvez définir les deux comme locaux sur un site spécifique ou même un dossier dans un site en modifiant le fichier web.config approprié. Si la longueur du fichier (puits, requête) est inférieure à maxAllowedContentLength mais supérieure à maxRequestLength, l'utilisateur obtiendra votre page d'erreur standard (ASPX), si vous en avez une. Dans le cas contraire, il obtiendra une page d'erreur IIS). Pour cette raison, vous souhaiterez peut-être attribuer à maxAllowedContentLength une valeur très importante (uniquement pour ce site/dossier) et alors la valeur limite sera maxRequestLength.

Enfin, rappelez-vous que maxRequestLength est en Ko alors que maxAllowedContentLength est en BYTES!

189
Ed Graham

La réponse courte et douce est que le plus petit des deux aura la priorité. Un conseil cependant - à mon avis, il est conseillé de définir maxRequestLength comme étant le plus petit des deux, car vous pouvez intercepter une exception dans l'événement Application_Error de votre Global.asax si elle était dépassée. Si vous dépassez maxAllowedContentLength en premier IIS le gérera au lieu d’ASP.NET, ce qui rend le traitement plus difficile en code.

19
joelmdev