Bonjour,
Je tiens à préciser que le téléchargement effectué via cette application est légal.
J'ai une petite appli Silverlight Out of browser qui permet de télécharger tous les fichiers d'un dossier présent sur un serveur distant. Pour cela, j'ai créé un service WCF wcfClient qui appelle sa méthode CopyFileLocal de manière "récursive".
Au chargement de la page, j'ai une méthode du service qui renvoie un List<string> contenant les noms des fichiers à télécharger.
CopyFileLocal a comme paramètre le chemin du dossier sur le serveur et le nom du fichier à télécharger (tiré de ma liste de string).
1. A partir de mon code C# : je boucle sur ma liste de fichiers, en appelant wcfClient.CopyFileLocalAsync
2. Le service récupère les byte du fichier du serveur et me les renvoie dans un tableau de byte.
3. Dans le traitement de wcfClient_CopyFileLocalCompleted, j'écris ce tableau de byte dans un fichier que je créé sur le disque local. Puis je rappelle la méthode CopyFileLocal à la fin de ce traitement, avec le nom du fichier suivant en paramètre.
Sur mon dossier de test, j'ai 30 fichiers à télécharger. Tout fonctionne bien sur les 7 premiers fichiers et sur le 8è il bloque... Je ne comprends pas pourquoi, aucun message ne s'affiche, alors que les exceptions et erreurs sont traitées.
Est ce que le service plante à force de se "rappeler lui même" ? Est ce que c'est une histoire de limite de transfert, sachant que dans mon ClientConfig j'ai
et le fichier est bien loin de cette taille, la somme des 7 fichiers aussi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"
Merci pour vos lumières ..![]()
Partager