FluentFtp无法连接,但可以在Filezilla中

时间:2019-04-08 14:12:06

标签: c# fluentftp

我正在使用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;

enter image description here

确切错误高于

1 个答案:

答案 0 :(得分:0)

您好,所有看起来不错的旧被动模式必须在客户端进行设置,以便根据链接上的此注释调整代码

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

artiomchi于2017年9月16日评论 我正在连接的几个服务器出现了一些问题……我相信这些服务器都存在故障,但是总的来说,我知道这可能与FluentFTP有关。

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

client.DataConnectionType = FtpDataConnectionType.PASV;