FTP 远程服务器返回错误: (530) 未登录

本文关键字:登录 错误 服务器 返回 FTP | 更新日期: 2023-09-27 18:35:05

我创建了一个FTP,我想使用C#代码读取一些数据。当FTP没有用户名/密码访问权限时,一切正常。但是当我输入用户名和密码时,我得到The remote server returned an error: (530) Not logged in.

我尝试了堆栈溢出和互联网上的所有问题,例如使用 .Normalize() 和使用 @username ,但我不断收到该错误。

这是我的代码:

foreach (string fileNameInFTP in directories)
                {
                    //                string fileNameInFTP2 = Path.GetFileNameWithoutExtension(fileNameInFTP);
                    if ((!haveWeAlreadyParsedThisFile(fileNameInFTP)) && (fileNameInFTP.Contains("CustsExport")) && (!fileNameInFTP.EndsWith("Empty.xml")) && (!fileNameInFTP.Contains("DelCustsExport")))
                    {
                        string file = FTPAddress + "/" + fileNameInFTP;
                        Console.WriteLine(file);
                        List<Customer> customersList =
                        (
                            from e in XDocument.Load(file).Root.Elements("cust")
                            select new Customer
                            {
                                MemeberID = (int)e.Attribute("memberid"),
                                CustomerID = (int)e.Attribute("custid"),
                                FirstName = (string)e.Attribute("fname"),
                                LastName = (string)e.Attribute("lname"),
                                ShowsNumber = (int)e.Attribute("count_noshow"),
                                VisitNumber = (int)e.Attribute("count_resos"),
                                Cancellation = (int)e.Attribute("count_cancel"),
                                MobileNumber = (string)e.Element("phone").Attribute("phonenumber")
                                /*Projects =
                                (
                                    from p in e.Elements("projects").Elements("project")
                                    select new Project
                                    {
                                        ProjectCode = (string)p.Element("code"),
                                        ProjectBudget = (int)p.Element("budget")
                                    }).ToArray()*/
                            }).ToList();

注意:

我能够访问 FTP,因为"目录"变量是 FTP 中的文件列表,当我调试代码时,我可以看到它**有**文件,但异常出现在这一行中:
                    List<Customer> customersList =
                    (
                        from e in XDocument.Load(file).Root.Elements("cust")
                        select new Customer
                        {
                            MemeberID = (int)e.Attribute("memberid"),
                            CustomerID = (int)e.Attribute("custid"),
                            FirstName = (string)e.Attribute("fname"),
                            LastName = (string)e.Attribute("lname"),
                            ShowsNumber = (int)e.Attribute("count_noshow"),
                            VisitNumber = (int)e.Attribute("count_resos"),
                            Cancellation = (int)e.Attribute("count_cancel"),
                            MobileNumber = (string)e.Element("phone").Attribute("phonenumber")
                            /*Projects =
                            (
                                from p in e.Elements("projects").Elements("project")
                                select new Project
                                {
                                    ProjectCode = (string)p.Element("code"),
                                    ProjectBudget = (int)p.Element("budget")
                                }).ToArray()*/
                        }).ToList();

换句话说:我能够读取文件的名称,但不能读取它们的内容。

FTP 远程服务器返回错误: (530) 未登录

您可以在 FTP URL 上提供用户名和密码。例如,如果要从ftp://ftp.foo.com下载/path/filename,则可以像这样对用户名和密码进行编码:

ftp://username:password@ftp.foo.com/path/filename

您应该能够为您尝试下载的文件构建这样的 URL。然后将该 URL 传递给 XDocument.Load

但是请注意,密码以明文形式发送(即不加密等)。

有关详细信息,请参阅 RFC 1738 的第 3.2 节。