使用FluentFTP连接到FTPS(FTP over SSL)

Jot*_*dan 4 c# ftp ssl fluentftp

我在本地计算机上使用IIS来测试FTP连接.我正在使用FluentFTP库连接到FTP.我使用以下代码连接到服务器.

FtpClient conn = new FtpClient();
conn.Host = firewallSslDetails.Address;
conn.Credentials = new NetworkCredential(firewallSslDetails.UserName, firewallSslDetails.Password);
conn.SslProtocols = System.Security.Authentication.SslProtocols.Default;

X509Certificate2 cert = new X509Certificate2(@"C:\Users\BizTalk360\Desktop\FtpSites\ServerCert.cer");
conn.EncryptionMode = FtpEncryptionMode.Implicit;
conn.DataConnectionType = FtpDataConnectionType.AutoActive;
conn.DataConnectionEncryption = true;
conn.EnableThreadSafeDataConnections = false;
conn.ClientCertificates.Add(cert);
conn.ValidateCertificate += new FtpSslValidation(OnValidateCertificate);

conn.Connect();
Run Code Online (Sandbox Code Playgroud)

服务器返回我有以下错误.

FluentFTP.FtpCommandException:策略需要SSL.Win32错误:访问被拒绝.错误详细信息:SSL策略要求SSL用于控制通道.

对于通过FTP连接,上面的代码工作正常,对于使用SSL的FTP,它无法正常工作.

Mar*_*ryl 9

由于您似乎连接到默认端口21(没有在任何地方指定显式端口),您需要使用"显式"模式:

conn.EncryptionMode = FtpEncryptionMode.Explicit;
Run Code Online (Sandbox Code Playgroud)