c# – 使用FluentFTP连接到FTPS(FTP over SSL)
作者:互联网
我在本地计算机上使用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();
服务器返回我有以下错误.
FluentFTP.FtpCommandException: Policy requires SSL.; Win32 error: Access is denied.; Error details: SSL policy requires SSL for control channel.;
对于通过FTP连接,上面的代码工作正常,对于使用SSL的FTP,它无法正常工作.
解决方法:
由于您似乎连接到默认端口21(没有在任何地方指定显式端口),您需要使用“显式”模式:
conn.EncryptionMode = FtpEncryptionMode.Explicit;
标签:c,ssl,ftp,fluentftp 来源: https://codeday.me/bug/20190611/1218038.html