2009-10-13 16 views
7

trato de enumerar los detalles del archivo utilizando FtpWebRequest pero muy frecuentemente se produce un error con un WebException y muestra un error 530 Usuario no conectado..Net FtpWebRequest falla a veces

¿Cómo es esto posible, que funciona una parte del tiempo utilizando las mismas credenciales?

Fragmento de código:

 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

He tenido este problema exacto. Parece suceder más a menudo cuando ya he estado conectado al servidor por un tiempo, luego cambio el directorio y hago una lista. – Jonathan

+0

Su problema es similar al error que se creó en el Explorador de Windows FTP (es decir: Internet Explorer integrado en Explorer.exe) donde después de navegar en un directorio "perdería" sus credenciales y le pediría que inicie sesión repetidamente. Sin embargo, nunca he escuchado hablar de este comportamiento cuando uso dotnet. –

Respuesta

1

intente configurar

reqFTP.KeepAlive = false; 

y, posiblemente, si el anterior no funciona

reqFTP.UsePassive = false; 

he encontrado que la fijación de éstos en false reduce las ocurrencias de este error (que es generado por el servidor FTP) considerablemente.

Cuestiones relacionadas