c# webeexception错误:530(未登录)

本文关键字:登录 webeexception 错误 | 更新日期: 2023-09-27 18:16:18

我需要一些帮助与一些代码是不工作的某种原因。我正在制作一个方法,获取FTP目录中的文件列表。每次我调试应用程序时,都会抛出一个WebException, StatusCode为530(未登录)。请记住,我100%肯定地址,用户名和密码是正确的。方法:

public static List<string> GetFileList(string Directory)
    {
        List<string> Files = new List<string>();
        FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(ServerInfo.Root + Directory));
        request.Method = WebRequestMethods.Ftp.ListDirectory;
        request.Credentials = new NetworkCredential(ServerInfo.Username, ServerInfo.Username);
        FtpWebResponse response = (FtpWebResponse)request.GetResponse(); //Error occurs here
        Stream responseStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(responseStream);
        string CurrentLine = reader.ReadLine();
        while (!string.IsNullOrEmpty(CurrentLine))
        {
            Files.Add(CurrentLine);
            CurrentLine = reader.ReadLine();
        }
        reader.Close();
        response.Close();
        return Files;
    }

ServerInfo的值。根:"ftp://192.xxx.4。xx:21/MPDS"(为保护隐私,部分删节)

我已经使用MessageBoxes来确保完整的URI是正确的,它是。

我已经纠结这个问题很长时间了,所以我希望你能帮我解决这个问题。

提前感谢!

c# webeexception错误:530(未登录)

您可以尝试修改以下代码:

public static List<string> GetFileList(string Directory)
    {
        List<string> Files = new List<string>();
        FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri(ServerInfo.Root + Directory));
        request.Method = WebRequestMethods.Ftp.ListDirectory;
        request.Credentials = new NetworkCredential(ServerInfo.Username, ServerInfo.Username); // Is this correct?
        // request.Credentials = new NetworkCredential(ServerInfo.Username, ServerInfo.Password); // Or may be this one?
        request.UseBinary = false;
        request.UsePassive = true;
        FtpWebResponse response = (FtpWebResponse)request.GetResponse();
        Stream responseStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(responseStream);
        string CurrentLine = reader.ReadLine();
        while (!string.IsNullOrEmpty(CurrentLine))
        {
            Files.Add(CurrentLine);
            CurrentLine = reader.ReadLine();
        }
        reader.Close();
        response.Close();
        return Files;
    }