.net FTP未列出具有相同设置的live server上的文件

.net FTP未列出具有相同设置的live server上的文件,.net,iis,ftp-client,fluentftp,.net,Iis,Ftp Client,Fluentftp,我有一个在IIS上运行的WebApi应用程序 在开发中,它可以完美地读取和写入文件。 当它部署到实时系统时,它将登录,但不会列出文件夹的内容。这在过去是有效的,我不知道是什么改变使它停止工作 我使用FluentFTP使用以下代码 Dim Host As String = FTPSettings.Val("Host") Dim Port As Integer = CInt(FTPSettings.Val("Port")) Dim UserName As String = FTPSettings.V

我有一个在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是一个从数据库检索设置的内部系统

我试图从函数返回变量FileList,但得到一个“未设置为对象实例的对象引用”

我尝试过的事情:

  • 更改连接类型(为活动)-无错误,但返回空列表
  • 已尝试列出-相同错误
  • 打开入站和出站的各种防火墙端口
  • 尝试捕获Client.GetListing行。没有返回更多详细信息
我在上面所做的所有更改仍然适用于测试系统,但不适用于现场


此时,我认为实时计算机上的设置存在问题,但我不确定它在哪里。

经过大量阅读和测试,我在FluentFTP的文档中看到了这一部分-

我忘了设定一些价值观。最后,我将用于设置客户端的代码更改为

        Client = New FtpClient(Host, UserName, Password)
        Client.AutoDetect()
自动检测设置正确地拾取了设置,一切正常


谢谢

当只有目录列表失败时,最常见的原因是您忘记设置所需的防火墙规则。我请求您将此帖子标记为一个答案,它将帮助其他面临类似问题的人。