mercredi 18 mars 2009

Upload de fichiers avec asp.net 2.0 : taille du fichier

La taille maximale (par defaut) d'un fichier qu'on peut uploader est 4Mo. Il est cepandant possible d'augmenter cette taille si necessaire.

Le processus de travail (process worker) de asp.net dispose d'un espace virtuel de 2Go. Le processus de travail n'utilise que 1 Go.

La disponibilité de la mémoire, l'espace disponible sur le disque dur, la vitesse du processeur, le trafic réseau etc sont des facteurs qui définissent la taille maximale du fichier à uploader.

Avec un trafic réseau régulier, Microsoft recommande que la taille maximale du fichier à uploader soit de 10 à 20 Mo. Si l'upload se fait rarement, la taille maximale recommandée peut aller jusqu'à 100 Mo.

Comment changer la taille limite ?

Il y a 2 façons de procéder:

- effectuer des modifications dans le fichier web.config.comments (situé dans le dossier ASP.NET 2.0 configuration C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG);

- effectuer des modifications dans web.config de l'application.

Les modifications dans web.config.comments s'appliqueront sur toutes les applications d'upload, tandis que celles de web.config s'appliqueront à l'application seulement.

Dans le fichier web.config.comments, situez le noeud <httpRuntime> :

<httpRuntime 
executionTimeout="110"
maxRequestLength="4096"
requestLengthDiskThreshold="80"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="5000"
enableKernelOutputCache="true"
enableVersionHeader="true"
requireRootedSaveAsPath="true"
enable="true"
shutdownTimeout="90"
delayNotificationTimeout="5"
waitChangeNotification="0"
maxWaitChangeNotification="0"
enableHeaderChecking="true"
sendCacheControlHeader="true"
apartmentThreading="false" />





L'attribut maxRequestLength a la valeur 4096 octet: les 4 Mo par defaut. Il suffit de changer cette valeur pour augmenter la taille du fichier à uploader.



Pour augmenter la taille dans une application spéficique, il suffit de mettre ce noeud httpRuntime dans web.config de l'application, dans <system.web>.



L'augmentation de la taille peut augmenter l'impact des attaques sur le server en cas d'envoi d'un nombre massif de requêtes en même temps. Il est nécessaire de manipuler la taille max avec prudence au risque de trouver des milliers de requêtes de 10 Mo affluant sur le serveur.



References:



http://msdn.microsoft.com/en-us/kb/kb00323245.aspx



http://msdn.microsoft.com/en-us/library/aa479405.aspx

Aucun commentaire: