我有一个在 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 但得到一个“对象引用未设置为对象的实例”。
我尝试过的事情:
- 更改连接类型(激活)- 没有错误但带回一个空列表
- 尝试 BulkListing - 同样的错误
- 打开各种防火墙端口入站和出站
- 尝试绕过 Client.GetListing 行。没有更多细节返回。
我在上面所做的所有更改仍然适用于测试系统,但不适用于现场。
在这一点上,我认为现场机器上的设置存在问题,但我不确定它在哪里。