【问题标题】:FluentFtp unable to connect but can in filezillaFluentFtp 无法连接但可以在 filezilla
【发布时间】:2019-04-08 14:12:06
【问题描述】:

我正在使用 Fluent Ftp 向服务器发送文件,我在 filezilla 中使用快速连接连接良好,但在我的代码中出现超时错误。

public bool SendFileToFtp(List<FtpFiles> _files)
{
    //create an FTP client
    string ftpHost = Properties.Settings.Default.ftpHost;
    string ftpUserName = Properties.Settings.Default.ftpUser;
    string ftpPassword = Properties.Settings.Default.ftpPassword;
    FtpClient client = new FtpClient(ftpHost);               
    client.Credentials = new NetworkCredential(ftpUserName, ftpPassword);
    client.Connect();
    client.SetWorkingDirectory("/in/input");
    foreach (FtpFiles file in _files)
    {
          client.UploadFile(file.FileName, Path.GetFileName(file.FileName));
    }    
} 

我基于另一个添加了以下内容,但它不起作用,并且不允许我连接到最终用户 ftp,但可以通过 filezilla。

client.EncryptionMode = FtpEncryptionMode.Implicit;

client.SslProtocols = SslProtocols.Tls12;

确切的错误在上面

【问题讨论】:

  • 如果你像client.SslProtocols = SslProtocols.Tls12 |SslProtocols.Tls11 | ... 一样添加所有协议。另外,你指定端口了吗?

标签: c# fluentftp


【解决方案1】:

您好,它看起来是很好的旧被动模式,必须在客户端设置,因此根据链接上的此评论调整代码

https://github.com/robinrodricks/FluentFTP/issues/187

artiomchi 于 2017 年 9 月 16 日发表评论 我连接的几台服务器出现了一些问题......我相信这些服务器有问题,但总的来说,我知道这可能是 FluentFTP 的问题。

在我的情况下,问题是 FluentFTP 默认会尝试建立 EPSV 连接,如果服务器不支持它,它将回退到常规 PASV。有问题的服务器报告它支持 EPSV,但与它的连接超时。强制 PASV 连接为我们解决了问题

client.DataConnectionType = FtpDataConnectionType.PASV;

【讨论】:

  • 对我来说相同 client.DataConnectionType = FtpDataConnectionType.PASV;解决了问题!
猜你喜欢
  • 2021-04-14
  • 1970-01-01
  • 2023-01-20
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
相关资源
最近更新 更多