【发布时间】:2018-06-13 05:40:25
【问题描述】:
我想通过代码统一上传 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();
但我总是有同样的错误:
错误: [Exception] Exception 认证或解密失败。
错误: [异常] 异常服务器返回错误:550-此服务器需要加密。 550 您必须发出 AUTH 命令以更改为加密会话,然后才能尝试登录。
寻找其他帖子,我看到身份验证是匿名的或者我的是普通的。
此外,FTP 需要 TLS 协议。
谢谢你帮助我。
【问题讨论】:
-
我相信你应该使用
X509Certificate2证书对象。 -
向我们展示.NET network log + 任何 FTP 客户端(甚至是 GUI 客户端)的日志,显示您如何在运行 .NET 代码的同一台机器上成功进行身份验证。 + 完整的异常调用堆栈。
-
正在寻找 .Net 网络日志 :) thx
-
那么您是否收到“此服务器需要加密”?
-
为什么要还原我的编辑?我们需要minimal reproducible example。您发布的大部分代码与您的问题无关。
标签: c# .net ssl ftp ftpwebrequest