FTPS慢的问题
Posted xuexiaodong2009
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FTPS慢的问题相关的知识,希望对你有一定的参考价值。
之前写过一些FTP的问题,但在公司的FTP修改为FTPS后,发现慢了很多,一直找不到原因。但没有测试环境,只能找其他人测试,后来发现,在FTP修改为FTPS后,创建FTP的目录一层目录就要将近10秒,好几层目录就将近一分钟,实在是有些夸张,只能搜索方案。
一种方案说是 request.Proxy = null;就可以,但测试似乎没有作用。
private static FtpWebRequest GetFtpWebRequest(FtpInfo info, string url, bool KeepAlive)
string username = info.userName;
string password = info.passWord;
try
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(new Uri(url));
request.UseBinary = true;
request.KeepAlive = KeepAlive;
request.Credentials = new NetworkCredential(username, password);
request.UsePassive = !info.transferType;//配置的定义和属性的定义刚好相反
//如果客户端应用程序的数据传输过程侦听数据端口上的连接,则为 false;如果客户端应在数据端口上启动连接,则为 true。 默认值是 true
LogInfo.Debug("FTP上传文件:UsePassive=" + request.UsePassive);
if (info.ftps)
request.Proxy = null;
request.EnableSsl = true;//FTPS需要配置
ServicePointManager.ServerCertificateValidationCallback =
new RemoteCertificateValidationCallback(ValidateServerCertificate);
return request;
catch (Exception e)
LogInfo.Error("FTP异常:url=" + url + "," + info, e);
throw e;
后来发现 request.KeepAlive = true;就可以加快速度,原来需要10秒的时间,现在只需要1秒的时间。但测试发现,如果是FTP则request.KeepAlive = true,就很慢,但如果是FTPS,就很快,但代码很简单,底层的原理实在不明白
以上是关于FTPS慢的问题的主要内容,如果未能解决你的问题,请参考以下文章