2011-03-17 2 views
1

Je tente de capturer le problème de connexion lors de l'utilisation de WebClient. Exemple, inaccessible, timeout, etc. Le code ne fonctionne pas, comme s'il n'y avait rien de mal.Comment capturer une erreur avec Webclient?

WebClient wc = new WebClient(); 
try 
{ 
    wc.UploadFileAsync(new Uri(@"ftp://tabletijam/FileServer/upload.bin"), Directory.GetCurrentDirectory() + @"\crypto.bin"); 
} 
catch (System.Exception ex) 
{ 
    MessageBox.Show(ex.ToString()); 
} 
+0

Eh bien ... devrait-il y avoir quelque chose de mal avec l'extrait de code fourni? – sisve

+0

Il n'y a rien de mal dans le code. Ce que j'ai fait, mais je ne peux pas savoir si le téléchargement est commencé ou non. Qu'est-ce que j'essaie d'atteindre est, comment puis-je savoir si le client hôte inaccessible, ou si il ya quelque chose de mal avec la transmission? –

Répondre

0

Le code que vous utilisez, juste envoie le fichier ... vous devez implémenter la Async partie.

WebClient webClient = new WebClient(); 
webClient.UploadFileAsync(address, fileName); 
webClient.UploadProgressChanged += WebClientUploadProgressChanged; 
webClient.UploadFileCompleted += WebClientUploadCompleted; 

... 

void WebClientUploadProgressChanged(object sender, UploadProgressChangedEventArgs e) 
{ 
    Console.WriteLine("Download {0}% complete. ", e.ProgressPercentage); 
} 
void WebClientUploadCompleted(object sender, UploadFileCompletedEventArgs e) 
{ 
    // The upload is finished, clean up 
} 
0
try 
{ 
    // trying to make any operation on a file 
} 
catch (IOException error) 
{ 
    if(error is FileNotFoundException) 
    { 
     // Handle this error 
    } 
} 

utiliser ce code, mais avec votre scénario