Bonjour,
cela peut paraître prétentieux et d'ailleurs ça l'est, mais je n'ai pour le moment pas d'autres explications. Je pense avoir trouvé un bug dans la classe FTPWebRequest et j'aimerais le signaler à Microsoft.
En effet, j'ai développé une classe FTPClient qui étend la classe WebClient. Je l'utilise pour télécharger des fichiers sur un serveur FTP. J'ai développé une méthode asynchrone DownloadFilesAsync qui utilise la méthode DownloadFileAsync.
J'ai défini un timeout de téléchargement. Lorsque le timeout est déclenché, la requête de téléchargement est annulée par l'appel de la méthode Abort() de l'objet FTPWebRequest. Normalement, l'appel à cette méthode délenche l'appel de la méthode OnFileCompleted et l'exception définie par la propriété e.Error stipule l'annulation de la méthode.
Hors, il arrive que l'appel à la méthode Abort ne déclenche pas l'appel de OnFileCompleted laissant penser que l'objet FTPWebRequest n'a pas pris en compte la demande d'annulation.
J'ai loggué les évènements System.Net. Lors de l'appel à la méthode Abort, les logs suivants apparaissent:
L'annulation échoue mais n'a pourtant pas lieu ?System.Net Verbose: 0 : [1244] FtpWebRequest#39438799::Abort()
System.Net Verbose: 0 : [1244] Exiting FtpWebRequest#39438799::Abort()
Merci d'avance pour votre aide.
Cordialement.
Partager