Httphandler - taille limitée

scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 - 9 juil. 2009 à 13:47
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 - 6 août 2009 à 15:10
Bonjour à tous,

Voila j'ai testé les httphandler (ashx) pour le téléchargement de fichier et je me rends compte que sa marche pour des fichiers qui font 1-2 Mo et non pour 50 Mo
La taille serait-elle limitée ?
Si quelqu'un à des infos sur le sujet ;)

Merci par avance

12 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
9 juil. 2009 à 22:35
Salut,

La limitation est plus du à la configuration de IIS.

cf http://www.banmanpro.com/support2/File_Upload_limits.asp pour augmenter la taille

Il faut changer le parametre
AspMaxRequestEntityAllowed dans le fichier C:\windows\sytem32\inetserv\metabase.xml

bon dev
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
9 juil. 2009 à 23:24
Bonsoir,

nhervagault, je suis pas sur que ce paramètre bride l'upload de ASP.net, il s'agit plutot du paramètre <httpruntime maxrequestlength="" /> à définir au niveau du web.config de l'application.

Par contre, j'ai l'impression ici que le problème survient lors de l'envoie depuis ASP.net vers le navigateur. Dans ce cas je ne connais pas de limitation lié à IIS.

<hr />Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
16 juil. 2009 à 15:46
Merci pour vos réponses,

je ne connais pas toutes les options dans IIS alors j'ai fait plein de test, en restaurant les modifications que j'ai faites. Bref, sa ne change rien.

nhervagault => j'ai quand même testé, mais bon la valeur par default est de 204800, et j'arrive à télécharger des fichiers de plusieurs Mo

tit question, si on est bien sur le même sujet : on parle bien de DownLoad et non de UpLoad (avec l'élément FileUpLoad) ?

je pense pas voyant ensuite la phrase de jesusonline "le problème survient lors de l'envoie depuis ASP.net vers le navigateur", je préfére demande pour être sur :)

en faisant des recherche sur google (ex: "httphandler size limit") on tombe directement sur des sujets sur FileUpload. C'est le même concept up & down ? ou je suis le seul à etre dans ce cas lol ?

je continu mes recherches, je vous tiendrai au courant si je trouve
0
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
16 juil. 2009 à 16:38
je suis entrain de penser ...

est-ce que sa pourrait venir du code dans la class qui obtient le nom de fichier ?
j'utilise ce code (pour des fichiers msi) :

context.Response.ClearHeaders()
context.Response.Clear()
context.Response.ClearContent()
context.Response.ContentType = "application/octet-stream"
context.Response.AddHeader("Content-Disposition", "attachment; filename=" & (_File)
context.Response.WriteFile(_File) context.Response.End()

qu'en pensez-vous ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 juil. 2009 à 20:42
Je pensais que c'est en upload (désolé)

Fais avec une boucle de lecture binaire du style.

byte[] buffer = new byte[4096];
int byteseq = strm.Read(buffer, 0, 4096);while (byteseq > 0)
{
   context.Response.OutputStream.Write(buffer, 0, byteseq); 
   byteseq = strm.Read(buffer, 0, 4096);
}
0
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
16 juil. 2009 à 22:43
merci pour ta réponse,

strm correspondant je suppose à un File.OpenRead("nomdufichier"),
j'ai donc suivi ton code, et pour des fichiers qui passent d'habitude, il m'ouvre le fichier dans le navigateur, ce qui donne par exemple : ÐÏࡱá>þÿ 8þÿÿÿfÎÏÐtéî

et avec le fichier faisant plus de 50 Mo = > page blanche !

note : j'ai bien entendu augmenté le nombre de bit à 80000000 (v
u que c'est des octects =bytes)
0
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
5 août 2009 à 20:03
Bonjour,
J'ai continué mes recherches mais en vain. Je craque ! je ne vois vraiment pas de soluce !
Si le fichier dépasse 30 Mo, il n'est pas accepté.
Pourquoi 30 Mo ? Où la limite est-elle indiquer ?
Je n'en sais rien. Bref, si vous avez d'autres infos susceptibles de m'aider, n'hésitez pas.
Je vais chercher une autre alternative, car la je suis bel et bien bloquer.

je vous tiens au courant, car c'est le genre d'astuce qui peut toujours aider :)
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
6 août 2009 à 01:09
Je viens de tester avec un fichier msi de 190Mo et le bout de code que tu donnes et j'ai pas de soucis. J'ai testé avec IIS7 et Cassini.

Quel est le host qui va heberger ASP.net ? IIS6, IIS7 ou cassini ? quel est le client que tu utilises ? IE ? FF ? Tu fais l'appel en local ou de l'exterieur ? Si tu envoie d'autres types de fichier que msi, t'as le meme problème ?


____________________________________________
Cyril - MVP ASP.net - Consultant indépendant
0
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
6 août 2009 à 12:21
190 Mo et sa marche ? a oui en effet.

je suis sous windows server 2003 avec IIS6

si j'utilise IE une page blanche s'affiche : "Internet Explorer ne peut pas afficher cette page Web"

alors que sous FF j'ai ce message : "[i]Erreur d'analyse XML : aucun élément trouvé
Emplacement : http://NDD.com/files/files1.msi.ashx
Numéro de ligne 1, Colonne 1 :/i"
quelle ligne 1 ? quelle colonne 1 ! bizarre.

j'envoi plusieurs autres fichiers mais qui font moins de 2 Mo en moyenne. donc sa passe nickel.

je fais l'appel de l'extérieur. en local j'ai IIS7 et je n'ai jamais chercher à le configurer ou à l'utiliser, vu sur les sont sous IIS6.
0
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
6 août 2009 à 14:40
En fouinant dans les options, je m'arrête sur un truc (au peur de passer pour un inculte)
La bibliothèque de class "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" que l'on 'attache' à notre extension MSI (dans IIS, mappage d'extension) ne pourrait-elle pas avoir des limites étant donné que c'est la version 2 du Framework ?
J'ai alors voulu tester avec la ver 3 ou 3.5 (ces versions étant installées sur ce serveur) mais je ne trouve pas d'équivalent de fichier.

Est-ce que sa pourrait venir de ce fichier d'après vous ?
A moins que jesusonline tu ai utilisé ce fichier sous IIS7, dans ce cas, sa ne provient pas de cela?

Merci pour vos réponses
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
6 août 2009 à 14:49
ASP.net 3.5 repose sur ASP.net 2.0, le core n'a pas changé depuis la v2 donc normal qu'il n'y ai pas de version 3 ni de 3.5, j'en ai parlé ici [url]http://blogs.developpeur.org/cyril/archive/2008/05/12/iis-et-asp-net-3-5-avoir-la-bonne-version-du-framework.aspx/url

Par contre tu n'as pas besoin de faire de mapping, le mapping permet de dire à IIS qui doit gérer tel ou tel extension, dans ton cas tu ne demandes pas un fichier .msi mais un fichier .ashx.


____________________________________________
Cyril - MVP ASP.net - Consultant indépendant
0
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
6 août 2009 à 15:10
ok, merci de ta réponse.
si le mapping me sert à proteger le fichier msi. il est appeler seulement si l'user est autoriser (avec une variable de session). autrement l'user peut y accéder directement : nomdufichier.msi
0
Rejoignez-nous