Utilisation de Silverlight 3 pour créer une application de téléchargement de fichiers. Il peut télécharger des fichiers de n'importe quelle taille - cela fonctionne (selon les circonstances) avec des fichiers de 4 Go. Il télécharge des morceaux de fichiers, de sorte que si quelque chose se produit, le téléchargement peut être repris à partir du bloc le plus récent.Problème de mémoire de téléchargement de fichier Silverlight
La circonstance où le téléchargement ne fonctionne pas est dans IE et Chrome lors du téléchargement de fichiers volumineux. Ils semblent avoir des problèmes de mémoire. Dans Firefox, l'utilisation de la mémoire est une ligne irrégulière - comme on pouvait s'y attendre si elle lisait une partie du fichier, la téléchargeait, la rejetait, puis recommençait sur le morceau suivant. IE et Chrome semblent s'accrocher aux morceaux. Finalement, une exception OutOfMemoryException est levée une fois que la RAM disponible est épuisée. Jusqu'ici, j'ai essayé de changer le flux de fichier et les tailles de flux, les buffers, etc. J'ai essayé de générer des octets plutôt que de lire le flux de fichiers - mêmes problèmes. J'ai essayé d'écrire tout un morceau à la fois plutôt que le tampon 4kb que nous utilisons maintenant - mêmes problèmes.
Des idées sur ce qui pourrait se passer? IE et Chrome ne sont-ils pas en train de collecter des ordures pour se débarrasser des morceaux inutiles? Ou y a-t-il un en-tête de requête http que je devrais utiliser? Quelques idées sur la façon de localiser où la mémoire est utilisée - dans IE lui-même, ou le plugin Silverlight?
@ndim merci pour avoir corrigé les fautes de frappe – cofiem
Pouvez-vous essayer de simuler le téléchargement, sans envoyer de données, mais simplement lire le fichier en morceaux, convertir en octets, et continuer? –
Bonne idée ... J'y reviendrai quand je le pourrai, et j'essaierai ça. – cofiem