Je travaille sur une application ASP.NET Framework 2.0. Sur une page particulière, je fournis un lien vers l'utilisateur. En cliquant sur ce lien une fenêtre s'ouvre avec une autre page aspx. Cette page envoie en fait une requête http à une URL tierce qui pointe vers un fichier (comme - les URLs miroir pour télécharger un fichier à partir du cloud). La réponse http est renvoyée à l'utilisateur sur la toute première page en utilisant response.write d'où l'utilisateur clique sur le lien.Streaming asynchrone de fichiers volumineux à l'aide de ASP.Net Framework 2.0
Maintenant, le problème auquel je suis confronté est si la taille du fichier est faible, alors cela fonctionne très bien. Mais, si le fichier est volumineux (c'est-à-dire plus de 1 Go), alors mon application attend jusqu'à ce que le fichier entier soit téléchargé à partir de l'URL. J'ai essayé d'utiliser response.flush() pour envoyer un bloc par données de bloc à l'utilisateur, mais l'utilisateur n'est toujours pas en mesure d'utiliser l'application parce que le processus de travail est occupé à obtenir des flux de données provenant d'URL tierces.
Existe-t-il un moyen de télécharger des fichiers volumineux de façon asynchrone afin que ma fenêtre contextuelle termine son exécution (le téléchargement sera en cours) et que l'utilisateur puisse effectuer d'autres activités parallèlement.
Merci, Suvodeep
Ваньо, l'exemple est exactement le même ci-dessus HttpWebRequest que mon implémentation actuelle. Je fournis une URL http pour créer httpwebrequest. Mais le problème est qu'il boucle continuellement la boucle while jusqu'à la fin du fichier de 1 Go, puis le processus principal quitte la boucle while pour terminer le processus. –
Comment utiliser Webclient de manière asynchrone pour que le fichier puisse être téléchargé en parallèle. Veuillez suggérer. –
Mis à jour ma réponse. C'est ainsi que vous pouvez obtenir le flux à partir de WebClient. Ensuite, la logique est la même - tout en boucle et en lecture des morceaux. –