问题
I try to list file details using FtpWebRequest but very frequently it fails with a WebException and shows error 530 User not logged in.
How is this possible, that it works some of the time using the same credentials?
Excerpt from 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();
回答1:
Try setting
reqFTP.KeepAlive = false;
and possibly if the above does not work
reqFTP.UsePassive = false;
I found that setting these to false reduced the occurrences of this error (which is generated by the FTP server) considerably.
来源:https://stackoverflow.com/questions/1559232/net-ftpwebrequest-fails-sometimes