0

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

客户端.SslProtocols = SslProtocols.Tls12;

在此处输入图像描述

确切的错误在上面

4

1 回答 1

2

嗨,这似乎是好的旧被动模式必须在客户端设置,因此根据链接上的此评论调整代码

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

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

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

client.DataConnectionType = FtpDataConnectionType.PASV;

于 2019-04-08T14:30:53.733 回答