我正在使用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;
确切错误高于
答案 0 :(得分:0)
您好,所有看起来不错的旧被动模式必须在客户端进行设置,以便根据链接上的此注释调整代码
https://github.com/robinrodricks/FluentFTP/issues/187
artiomchi于2017年9月16日评论 我正在连接的几个服务器出现了一些问题……我相信这些服务器都存在故障,但是总的来说,我知道这可能与FluentFTP有关。
在我的情况下,问题是FluentFTP默认情况下将尝试建立EPSV连接,如果服务器不支持它,则将恢复为常规的PASV。有问题的服务器报告说它支持EPSV,但是与它的连接超时。强制PASV连接可以为我们解决
client.DataConnectionType = FtpDataConnectionType.PASV;