FtpWebRequest 通过 HTTP 代理支持下载,但不支持上传
在更改密码或认定一次成功的列表证明支持上传之前,请阅读 FtpWebRequest 中已记录的 HTTP 代理操作限制。
通过 HTTP 代理,目录列表和下载可以正常工作,而 FtpWebRequest 会拒绝 UploadFile。这是有文档记录的能力限制,并不能证明密码有误。
对于 HTTP 代理,其支持的操作是 DownloadFile、ListDirectory 和 ListDirectoryDetails。启用被动模式并不会为那个 API 增加上传支持。
一条具备能力的 HTTP CONNECT 路径可以承载另一个 FTP 客户端的 TCP 连接,但须符合代理策略。一个 HTTP 到 FTP 的网关可以提供它自己的操作。两者都不会让每个 FTP API 实现每一种安排。
将 Proxy 设为 null 可以让获准的直接上传正常工作,但那绕过了中间层。它并没有修复通过代理进行的上传。
请为所需操作选择受支持的 FTP 客户端和路由。FtpWebRequest 在新增开发中已被废弃;HttpClient 本身并不是 FTP 的替代品。只有在确认该操作受支持之后,才应排查它的代理凭据、FTP 凭据以及数据连接。