2009-10-13 21 views
7

Ben FtpWebRequest kullanarak dosya ayrıntılarını listelemek için deneyin ama çok sık bir WebException ile başarısız olur ve hatayı yapmadınız 530 Kullanıcıyı gösterir. Bu mümkün olduğu nasıl.Net FtpWebRequest bazen başarısız

, bu kullanarak zaman bazı çalıştığını aynı kimlik bilgileri koddan

alıntı:

 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

Bu kesin sorunu yaşadım. Bir süredir sunucuya daha önceden bağlandığımda daha sık görünüyor, o zaman ben dizini değiştirip bir liste yaparım. – Jonathan

+0

Sorununuz, Windows Gezgini FTP'sinde yerleşik olan hataya benzer (yani: Internet Explorer, Explorer.exe'ye entegre edilmiştir). Burada bir dizinde dolaştıktan sonra, kimlik bilgilerinizi kaybeder ve tekrar tekrar oturum açmanızı ister. Yine de bu davranışı dotnet kullanırken hiç duymadım. –

cevap

1

reqFTP.KeepAlive = false; 

belirlemeyi deneyin ve muhtemelen eğer yukarıdaki

reqFTP.UsePassive = false; 

çalışmıyor ben false bu ayar olaylar azalttığını bulundu Bu hata (FTP sunucusu tarafından oluşturulan) önemli ölçüde.