带有 Web 客户端的 C# FTP 错误:远程服务器返回错误:(534) 534 策略需要 SSL



我的代码的目的是将一些数据上传到FTP位置。

使用我的代码,我不断收到一个错误,指出远程服务器需要 SSL。我使用的是大于 4 的 .NET 版本。所有其他帖子都建议我添加下面ServicePointManager代码。

异常发生在client.UploadData上。

还是没有骰子。任何帮助将不胜感激。

ServicePointManager.ServerCertificateValidationCallback +=
(sender,certificate, chain, sslPolicyErrors) => true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
byte[] data = stream.ToArray(); //Data I want to upload to FTP location
using (WebClient client = new WebClient())
{
client.Credentials = new NetworkCredential("*Username*", "*Password*");
client.UploadData("ftp://file.example.com/Content/file", "STOR", data);
}

Afaik,WebClient本身不支持FTP over TLS(FTPS((它实际上在内部支持它,但没有API来启用它(。

设置ServicePointManager.SecurityProtocol无济于事。并且绝对不要将其设置为SecurityProtocolType.Ssl3


  • 注册ftps://前缀,如下所示:强制 Web 客户端使用 SSL。
  • 或者代替WebClient,请使用FtpWebRequest,它本机支持 FTP over TLS。

    使用如下代码:
    在 C#/.NET 中将二进制文件上载和下载到 FTP 服务器/从 FTP 服务器下载二进制文件

    只需添加

    request.EnableSsl = true;
    

最新更新