编程语言
首页 > 编程语言> > c# – 使用FluentFTP连接到FTPS(FTP over SSL)

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