簡體   English   中英

FluentFTP GetListing 不返回任何結果

[英]FluentFTP GetListing doesn't return any result

我似乎無法從 FTP 服務器獲得任何列表。 (FileZilla 顯示目錄和文件)。

我得到了這個代碼:

                FtpClient ftpConn = new FtpClient();
                ftpConn.Host = FtpServer;
                ftpConn.Port = FtpPort;
                ftpConn.Credentials = new System.Net.NetworkCredential(Username, Password);
                ftpConn.SslProtocols = System.Security.Authentication.SslProtocols.Tls12;
                ftpConn.EncryptionMode = FtpEncryptionMode.Implicit;
                ftpConn.ValidateCertificate += new FtpSslValidation(Client_ValidateCertificate);
                ftpConn.BulkListing = false;
                //ftpConn.DataConnectionType = FtpDataConnectionType.AutoPassive;
                ftpConn.Connect();

                FtpListItem[] FtpFolders = null;

                FtpFolders = ftpConn.GetListing(Folder);

但它不起作用。 我嘗試了 FTP 選項,但沒有得到任何結果。 還有什么建議嗎?

根據您的代碼,
由於無法連接到 FTP 服務器,您無法獲得任何結果。

這是您錯過的內容,請參閱: FluentFTP 的常見問題解答部分
您可能有證書(*.crt, *.cer) 文件,將其帶入您的源代碼,如下所示。

ftpConn.ClientCertificates.Add(new X509Certificate2(@"C:\ftpServer.crt"));

如果您的證書文件沒有根鏈。 (例如,由您自己制作或如果它是私人證書文件)。
您需要在以下位置添加更具體的代碼,

ftpConn.ValidateCertificate += new FtpSslValidation( Client_ValidateCertificate );

private void Client_ValidateCertificate(FtpClient control, FtpSslValidationEventArgs e)
{            
    if (e.PolicyErrors == SslPolicyErrors.None || e.Certificate.GetRawCertDataString() == "Use this condition for your situation")
    {
        e.Accept = true;
    }
    else
    {
        if (e.PolicyErrors == SslPolicyErrors.RemoteCertificateChainErrors)
        {
            //In this case, you need to choose connect or not. If your certificate file doen't have root chain.
        }
        else
        {
            //throw new Exception($"{e.PolicyErrors}{Environment.NewLine}{GetCertificateDetails(e.Certificate)}");
        }
    }
}

PS: If your FTP service on Windows, you don't have any choice but if it work on linux or unix, You can use SFTP with "Renci.SshNet.

更新:現在 windows 支持 openSSH,所以我們可以使用 sftp。 為 Windows Server 2019 和 Windows 10 安裝 OpenSSH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM