2013-07-16 3 views
5

Je veux télécharger des fichiers en fonction de leur date à partir d'un serveur ftp .. Je peux accéder à ce Ftp à partir de tiers CuteFtp et tout est Okey .. mais quand je cours le code ci-dessous à la ligne GetRespone() Je reçois cette erreur: l'opération a expiré. Je télécharge un exemple de fichier de ce FTP par programme avec requet webclient et c'était bien .. mais je dois utiliser FtpWebRequest pour obtenir listDirectoryDetail et webClient ne supporte pas that..and encore une chose, il y a une exception dans la demande: FtpWebRequest.ContentType jeté une exception de type System.NotSupportedException.FtpWebResponse, l'opération a expiré

voici mon code:

Uri uri = new Uri("ftp://192.168.1.5:2100/");//the private address 
     if (uri.Scheme != Uri.UriSchemeFtp) 
     { 
      return; 
     } 
     FtpWebRequest reqFTP; 
     reqFTP = (FtpWebRequest)WebRequest.Create(uri);        
     reqFTP.Credentials = new NetworkCredential("myuser", "mypass"); 
     reqFTP.KeepAlive = false; 
     reqFTP.Method = WebRequestMethods.Ftp.ListDirectoryDetails;        
     reqFTP.UseBinary = true; 
     reqFTP.Proxy = null; 
     reqFTP.UsePassive = false; 
     FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse(); 

S'IL VOUS PLAÎT AIDEZ :(

+0

Avez-vous vérifié le nom d'utilisateur et mot de passe NetworkCredential? parce que je suppose que vous avez copié votre code comme il est. –

+0

bien sûr, je l'ai vérifié !! .. avec le wron g user/pass obtiendrait une authentification ou une erreur de connexion (pas sûr). – Parid0kht

+0

essayer de changer le Uri pour mapper au fichier exister physique comme "" ftp://192.168.1.5:2100/C:/test.txt "et changer la méthode de demande à request.Method = WebRequestMethods.Ftp.DownloadFile; et voir ce que –

Répondre

12

J'ai résolu mon problème ... la propriété UsePassive doit être définie sur True, quand il est vrai que le client doit initier une connexion sur le port de données

reqFTP.UsePassive = true;