.Net FtpWebRequest有时会失败

我尝试使用FtpWebRequest列出文件详细信息但很常见它因WebException而失败并显示错误530用户未登录。

这怎么可能,它在某些时候使用相同的凭据工作?

摘自代码:

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(); 

尝试设置

 reqFTP.KeepAlive = false; 

并且可能如果上述方法不起作用

 reqFTP.UsePassive = false; 

我发现将这些设置为false会大大减少此错误(由FTP服务器生成)的发生。