J'utilise C# WebClient(); télécharger un fichier depuis un serveur. Le problème est quand je n'ai pas internet ou que le serveur n'est pas réactif, mon application se bloque en essayant de télécharger ce fichier. Quelle est la meilleure pratique pour éviter le plantage, pour annuler et donner une notification que la connexion avec un serveur a échoué?Comment éviter le plantage d'une application lors du téléchargement d'un fichier à l'aide de WebClient();
Répondre
poignée seulement les exceptions renvoyées par WebClient.DownloadFile:
try
{
WebClient.DownloadFile(uri, myPath);
}
catch(WebException webEx)
{
// There was an exception due to network or path problems...
// Notify the user?
}
À la votre! Merci pour le conseil, j'ai utilisé: if (ex.Status == WebExceptionStatus.ProtocolError) –
Un serveur ne répondant est une situation exceptionnelle qui est mieux traitée à l'utilisation appropriée sauf manipulation avec un bloc try/catch. L'exception à traiter pour la demande WebClient
est un WebException
Vous pouvez inspecter l'objet d'exception pour plus de détails. La propriété Status
contiendra un status value qui vous donnera plus d'informations sur ce qui s'est vraiment mal passé.
Vérifiez la samples in MSDN:
try
{
WebClient client = new WebClient();
byte[] pageData = client.DownloadData("http://www.contoso.com");
string pageHtml = Encoding.ASCII.GetString(pageData);
Console.WriteLine(pageHtml);
client.DownloadFile("http://www.contoso.com", "page.htm");
}
catch (WebException webEx)
{
Console.WriteLine(webEx.ToString());
if(webEx.Status == WebExceptionStatus.ConnectFailure)
{
Console.WriteLine("Are you behind a firewall? If so, go through the proxy server.");
}
}
Très bon message, merci de votre temps ... –
@Badr Hari: De rien. Bonne chance pour votre projet. –
Si c'est interactif, alors oui ce serait la meilleure chose à faire lors de la capture de l'exception pertinente. Que vous avortiez tout ou que vous donniez un message (et que ce message soit modal ou non modal) dépendrait de votre interface utilisateur globale. Généralement, abandonner est plus acceptable dans la ligne de commande ou dans une application Web (avec une réponse appropriée pour chacun), abandonner juste cette opération avec un message d'erreur est plus approprié pour une application GUI. Si c'était quelque chose fonctionnant comme un service etc. vous voudriez enregistrer l'exception et passer à l'opération suivante, éventuellement avec un certain degré de back-off (deux exceptions dans une rangée, attendez un peu comme le le réseau est peut-être complètement éteint, une autre exception, attendez plus longtemps cette fois-ci). Dans les deux cas, vous devez explicitement attraper WebException
s (et peut-être IOException
de la tentative d'enregistrement du fichier défaillant) et laisser d'autres exceptions (qui sont plus susceptibles d'être dues à des bogues dans l'application) stratégie.
- 1. Erreur de fichier de téléchargement WebClient
- 2. Afficher ProgessBar lors du téléchargement avec WebClient en C#
- 3. webclient erreur de téléchargement
- 4. Problème lié au fichier de téléchargement WebClient
- 5. Problème lors du téléchargement d'un fichier
- 6. WebClient lève une exception lors du deuxième téléchargement atttempt
- 7. Watin test hang application lors du téléchargement de fichier
- 8. Silverlight 3 barre de progression lors du téléchargement d'un fichier
- 9. Progression du téléchargement lors du téléchargement de fichier à l'aide de Webclient.Uploadfile
- 10. Progression du téléchargement de fichier
- 11. problème lors du téléchargement du fichier
- 12. synchronisation webClient téléchargement (silverlight)
- 13. WebClient.DownloadFileAsync Téléchargement du fichier sur le serveur
- 14. erreur dojo.io.iframe lors du téléchargement d'un fichier
- 15. Limite WebClient Taille maximale du fichier DownloadFile
- 16. Empêcher le serveur d'encoder en gzip lors du téléchargement avec WebClient
- 17. problème lors du téléchargement d'un fichier
- 18. Téléchargement du fichier avec ASIHTTPRequest - Application iPhone
- 19. Nom du fichier lors du téléchargement sur Android APK
- 20. pourquoi le code de mon fichier de téléchargement WebClient se bloque?
- 21. Iframe est chargé lors du téléchargement du fichier
- 22. Echappement du nom de fichier lors du téléchargement avec Zend_File_Transfer_Adapter_Http
- 23. ThreadAbortException (WebClient utilisant DownloadFile pour récupérer le fichier du serveur)
- 24. Comment obtenir Content-Type lors du téléchargement de fichier à partir de flash - est-ce possible?
- 25. Reprendre le contrôle du fichier de téléchargement
- 26. CacheItemRemovedCallback entraîne le plantage du serveur web
- 27. Génération de fichier CSV, puis le téléchargement du fichier
- 28. Problème de mémoire Asp.net lors du téléchargement de fichier
- 29. Erreur lors du téléchargement de fichier dans asp.net
- 30. Obtention d'une extension de fichier et d'un type de contenu incorrects lors du téléchargement du fichier
Ne pouvez-vous pas simplement attraper l'exception? –
Que voulez-vous dire des accidents? Y a-t-il une exception levée? –