C# FTP 550 错误

标签 c# ftp

我正在尝试通过 FTP 以编程方式下载 C# 中的文件,这是相关代码(显然带有伪造的凭据和 URI):

try
{
    var request = FtpWebRequest.Create("ftp://ftp.mydomain.com/folder/file.zip");
    request.Credentials = new NetworkCredential("username", "password");

    using (var response = request.GetResponse())
    {
         ...
    }
}
catch (WebException we)
{
    ...
}

异常在 request.GetResponse() 处抛出,错误代码为 550。问题不在于凭据或 URI,因为它们在 IE 中工作正常并且文件下载在那里成功。我错过了什么?我应该使用其他类型的凭据对象吗? request 对象上是否有我没有设置的属性?任何帮助将不胜感激。

最佳答案

事实证明,FTP 根不一定与 URL 根相同。也许我混淆了术语,所以让我解释一下:在我的例子中,连接到 ftp.mydomain.com 已经从/folder 开始,所以我的 URL 只需要是 ftp://ftp.mydomain.com/file.zip . IE8 知道如何消除原始路径中的冗余/folder 部分,而 FtpRequest 类则不知道,这就是为什么它在 IE8 中有效但在 C# 代码中无效。

关于C# FTP 550 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4464271/

相关文章:

c# - ASP.NET MVC : Put searching attributes into url (not query string)

java - Apache Commons Net FTPClient 默认使用被动模式还是主动模式?

c# - 有没有更简单的方法将多个 if/else 语句相互写入?

c# - .NET Core 中的 FTP 客户端

python - FTPSHook Airflow(数据通道需要 522 SSL/TLS)

c - 如何使用 c 套接字 api 发送文件。

Python ftplib 损坏文件?

c# - 按钮内的文本格式

c# - 为 C# 制作 C++ DLL

javascript - JSON.parse 字符串无效字符问题