2013-07-16 18 views
5

Voglio scaricare i file in base alla loro ora da un server ftp. Posso accedere a questo Ftp dalla terza parte di CuteFtp e ogni cosa è Okey..ma quando eseguo il codice di seguito alla riga GetRespone() Viene visualizzato questo errore: l'operazione è scaduta. Ho scaricato un file di esempio da questo FTP a livello di codice con webclient requet e andava bene..ma ho bisogno di usare FtpWebRequest per ottenere listDirectoryDetail e webClient non supporta quello ... e ancora una cosa, c'è un'eccezione nella richiesta: FtpWebRequest.ContentType gettato un'eccezione di tipo System.NotSupportedException.FtpWebResponse, l'operazione è scaduta

Ecco il mio codice:

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(); 

si prega di aiuto :(

+0

hai controllato il nome utente e la password NetworkCredential? perché credo che è stato copiato il codice come è. –

+0

ovviamente ho controllato !! .. con la wron g utente/passa otterrebbe un errore di autenticazione o di accesso (non sicuro). – Parid0kht

+0

prova a cambiare l'Uri per mappare sul file fisico esistente come "" ftp://192.168.1.5:2100/C:/test.txt "e cambia il metodo di richiesta su request.Method = WebRequestMethods.Ftp.DownloadFile; e guarda cosa hai ottenuto. –

risposta

12

ho risolto il mio problema ... la proprietà UsePassive deve essere impostata a True, quando è vero il cliente dovrebbe avviare una connessione sulla porta dati

reqFTP.UsePassive = true;