2009-10-13 8 views
7

Ich versuche Datei Details zur Liste FtpWebRequest verwenden, aber sehr häufig nicht mit einem WebException und zeigt Fehler 530 Benutzer nicht angemeldet..Net FtpWebRequest versagt manchmal

Wie dies möglich ist, dass es einen Teil der Zeit arbeitet mit die gleichen Anmeldeinformationen?

Auszug aus dem 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

Ich hatte genau dieses Problem. Es scheint häufiger zu passieren, wenn ich schon einige Zeit mit dem Server verbunden bin, dann wechsle ich das Verzeichnis und mache eine Liste. – Jonathan

+0

Ihr Problem ist ähnlich dem Bug des eingebauten Windows Explorer FTP (dh: Internet Explorer in Explorer.exe integriert), wo nach dem Navigieren eines Verzeichnisses Ihre Zugangsdaten "verloren" und Sie wiederholt zur Anmeldung aufgefordert werden. Ich habe jedoch noch nie von diesem Verhalten gehört, wenn ich dotnet benutze. –

Antwort

1

Versuchen

reqFTP.KeepAlive = false; 

Einstellung und möglicherweise, wenn die oben nicht

reqFTP.UsePassive = false; 

Ich fand nicht funktioniert, dass diese falsche Einstellung reduziert das Auftreten von Dieser Fehler (der vom FTP-Server erzeugt wird) ist erheblich.