热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FTP无法显示实时服务器上具有相同配置的文件列表

在IIS上运行的WebApi应用程序在开发环境中能够正常进行文件的读写操作。然而,在尝试通过FTP访问实时服务器上的文件列表时,遇到了无法显示的问题,尽管服务器配置与开发环境相同。这可能涉及权限设置、FTP服务配置或网络连接等方面的问题。

我有一个在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的文档中找到了本节-https://github.com/robinrodricks/FluentFTP#ftps

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

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

“自动检测”设置正确选择了设置,一切正常。

谢谢


推荐阅读
author-avatar
夏冰语风
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有