.Net FtpWebRequest有时会失败

Hen*_*rik 7 .net c# ftp 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();
Run Code Online (Sandbox Code Playgroud)

Pet*_*ter 2

尝试设置

reqFTP.KeepAlive = false;
Run Code Online (Sandbox Code Playgroud)

如果上述方法不起作用

reqFTP.UsePassive = false;
Run Code Online (Sandbox Code Playgroud)

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