2009-10-13 10 views
7

je tente de lister les détails du fichier en utilisant FtpWebRequest mais très souvent, il échoue avec une WebException et indique l'erreur 530 Utilisateur non connecté..Net FtpWebRequest échoue parfois

Comment est-ce possible, que cela fonctionne de temps en temps à l'aide les mêmes informations d'identification?

Extrait du code:

 reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpuri)); 
     reqFTP.UseBinary = true; 
     reqFTP.Credentials = new NetworkCredential(userName, password); 
     string[] downloadFiles = new string[0]; 
      reqFTP.Method = WebRequestMethods.Ftp.ListDirectoryDetails; 
      WebResponse response = reqFTP.GetResponse(); 
      StreamReader reader = new StreamReader(response.GetResponseStream()); 
      downloadFiles = reader.ReadToEnd().Replace("\r\n", "¤").Split('¤'); 
      reader.Close(); 
      response.Close(); 
+0

J'ai eu ce problème exact. Cela semble se produire plus souvent quand j'ai déjà été connecté au serveur pendant un moment, puis je change de répertoire et fais une liste. – Jonathan

+0

Votre problème est similaire au bug intégré dans Windows Explorer FTP (ie: Internet Explorer intégré dans Explorer.exe) où après avoir navigué dans un répertoire, il "perdrait" vos informations d'identification et vous demanderait à plusieurs reprises de vous connecter. Cependant, je n'ai jamais entendu parler de ce comportement lors de l'utilisation de dotnet. –

Répondre

1

Essayez le réglage

reqFTP.KeepAlive = false; 

et peut-être si ce qui précède ne fonctionne pas

reqFTP.UsePassive = false; 

Je trouve que la mise en ces false réduit les occurrences de cette erreur (qui est générée par le serveur FTP) considérablement.

Questions connexes