在C#中连接到FTP服务器时获取“此服务器需要加密”

时间:2018-01-03 14:21:57

标签: c# .net ssl ftp ftpwebrequest

我想通过代码统一在FTP上传一个XML文件,但我无法先连接到FTP。

所以在上传之前我只是尝试访问FTP和列表目录。

我使用此代码:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(host);
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;

request.Credentials = new NetworkCredential(user, pass);

FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
Debug.Log(string.Format("Directory List Complete, status {0}", response.StatusDescription));

response.Close();

但我总是有同样的错误:

  

错误:   [例外]例外验证或解密失败。

     

错误:   [例外]异常服务器返回错误:550-此服务器需要加密。   550您必须先发出AUTH命令才能更改为加密会话,然后才能尝试登录。

正在寻找其他帖子,我看到身份验证是匿名的,或者我的身份是正常的。

此外,FTP需要TLS协议。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

如果您的FTP服务器需要TLS / SSL加密,则必须使用FtpWebRequest.EnableSsl启用它:

request.EnableSsl = true;