以下安全ftp简单代码在我的Windows 7计算机上失败,但在另一个网络上的Server 2012计算机上运行成功:如果我删除了EnableSsl = true
,它可以正常工作。
public static string TheContent(string url, string username, string password)
{
ServicePointManager.ServerCertificateValidationCallback = OnValidateCertificate;//returns true.
string result = "";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);
request.Timeout = 7000;
request.EnableSsl = true;
request.UsePassive = true;
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential(username, password);
using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
result = reader.ReadToEnd();
return result;
}
我已尝试许多事情。 其中一些:
还有更多。
我总是在(FtpWebResponse)request.GetResponse()
“无法从传输连接读取数据:连接 尝试失败,因为关联方没有正确回应 一段时间后,或建立连接失败,因为 连接主机未能回复。“
使用Microsoft Network Monitor 3.4时,我发现错误似乎是:
FTP:响应端口,'234 AUTH命令ok。期待 TLS谈判。'
FTP:响应端口,'451参数不正确。 “
有什么想法吗?可能是因为默认情况下非服务器Windows不具备此功能,必须先启用某些功能吗?