FTP 没有列出具有相同设置的实时服务器上的文件

FTP not listing files on live server with identical setup

我有一个在 IIS 上运行的 WebApi 应用程序。

在开发中,它可以完美地读取和写入文件。 当它被部署到实时系统时,它会登录但不会列出文件夹的内容。这在过去是有效的,我无法弄清楚是什么改变了它停止工作。

我正在使用以下代码使用 FluentFTP。

Dim Host As String = FTPSettings.Val("Host")
Dim Port As Integer = CInt(FTPSettings.Val("Port"))
Dim UserName As String = FTPSettings.Val("Username")
Dim Password As String = FTPSettings.Val("Password")

Dim Client As FtpClient
Dim Creds As New NetworkCredential(UserName, Password)

Client = New FtpClient(Host) With {
    .Port = Port,
    .Credentials = Creds,
    .EncryptionMode = FtpEncryptionMode.Explicit,
    .SslProtocols = System.Security.Authentication.SslProtocols.Tls12,
    .DataConnectionType = FtpDataConnectionType.PASV
}

Dim OrgID = 1
Dim Filelist() As FtpListItem

Client.SetWorkingDirectory($"/{OrgID.ToString}")
Filelist = Client.GetListing(Client.GetWorkingDirectory())

FTPSettings 是一个从数据库中检索设置的内部系统。

我试图从函数中 return 变量 FileList 但得到 "Object reference not set to an instance of an object".

我尝试过的事情:

我在上面所做的所有更改仍然适用于测试系统,但不适用于实时系统。

此时我认为 live 机器上的设置有问题,但我不确定它在哪里。

经过大量阅读和测试后,我在 FluentFTP 的文档中看到了这一部分 - https://github.com/robinrodricks/FluentFTP#ftps

我忘了设置一些值。最后我将设置客户端的代码更改为以下

        Client = New FtpClient(Host, UserName, Password)
        Client.AutoDetect()

A​​utodetect 设置正确地获取了设置并且一切正常。

谢谢