2009-10-13 34 views
7

staram się notować szczegóły plików przy użyciu FtpWebRequest ale bardzo często nie udaje się WebException i pokazuje error 530 użytkownik nie jest zalogowany..Net FtpWebRequest nie czasami

Jak to możliwe, że to działa na jakiś czas za pomocą te same referencje?

Fragment kodu:

 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

Mam dokładnie ten problem. Wydaje się, że zdarza się to częściej, gdy jestem już podłączony do serwera przez jakiś czas, a następnie zmieniam katalog i sporządzam listę. – Jonathan

+0

Twój problem jest podobny do błędu wbudowanego w Eksploratora Windows FTP (np. Internet Explorer zintegrowany z Explorer.exe), w którym po przejściu do katalogu straciłbyś dane i wielokrotnie prosił Cię o zalogowanie. Nigdy nie słyszałem o takim zachowaniu, gdy korzystam z dotnetu. –

Odpowiedz

1

Spróbuj ustawić

reqFTP.KeepAlive = false; 

i ewentualnie jeśli powyższe nie działa

reqFTP.UsePassive = false; 

Okazało się, że ustawienie to false zmniejszona wystąpień ten błąd (który jest generowany przez serwer FTP) znacznie.

Powiązane problemy