【问题标题】:FTP c# against Solaris 10 server针对 Solaris 10 服务器的 FTP c#
【发布时间】:2024-06-17 23:15:02
【问题描述】:

我正在尝试使用此代码从 Windows 机器上使用 C# 对 Solaris 机器下载文件,我收到错误 550 - 文件不可用。

        string fileName = FileName();
        string remoteUri = "xxxx";
        var webClient = new WebClient();
        webClient.Proxy = null;
        webClient.Credentials = new NetworkCredential(Settings.Default.FtpUser, Settings.Default.FtpPassword);
        webClient.BaseAddress = "ftp://"+Settings.Default.FtpHost;
        webClient.DownloadFile(remoteUri, fileName);

我已验证 URI 在 Internet Explorer 的地址行中使用时可以正常工作。
URI 如下所示

ftp://10.99.137.99/opt/scripts/overnight/test.txt

Unix端登录后的实际位置是

/opt/scripts/overnight/test.txt

在 Unix 方面。

我可以在输入我的用户名和密码后查看该文件。我究竟做错了什么?我还可以采取哪些其他步骤?有没有简单的方法来使用更多的手动 ftp?

【问题讨论】:

  • 如果您已验证文件的位置完全正确,那么 550 可能会说“文件不可用”,而实际上服务器由于网络凭据不准确而拒绝访问文件本身。这可能是因为您尝试通过 Web 客户端而不是通过 ftp 客户端进行 ftp。你不使用 FtpWebRequest 有什么原因吗? msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.aspx
  • 这是另一篇有趣的文章,答案不同:*.com/questions/2781654/ftpwebrequest-download-file
  • 第二个非常适合 - 非常感谢。
  • 如果您提供链接作为答案,那么我会接受。

标签: c# ftp


【解决方案1】:
    string remoteUri = "xxxx";

您发布了实际代码吗?这是远程文件的名称。它需要是ftp://10.99.137.99/opt/scripts/overnight/test.txt 而不是xxxx

如果它不是实际代码,你能发布你真正使用的代码吗?

【讨论】:

  • 很抱歉没有使虚拟数据保持一致 - 但我通过调试器将它粘贴到 Internet Explorer 中。
【解决方案2】:

这是另一篇有趣的文章,答案不同:

FtpWebRequest Download File

【讨论】: