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 URL 上提供用户名和密码。例如,如果要从ftp://ftp.foo.com
下载/path/filename
,则可以像这样对用户名和密码进行编码:
ftp://username:password@ftp.foo.com/path/filename
您应该能够为您尝试下载的文件构建这样的 URL。然后将该 URL 传递给 XDocument.Load
。
但是请注意,密码以明文形式发送(即不加密等)。
有关详细信息,请参阅 RFC 1738 的第 3.2 节。