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慢的问题的主要内容,如果未能解决你的问题,请参考以下文章

FTPS慢的问题

关于 ftps 服务器的问题 [关闭]

FTPS 中的 989 端口是做啥用的? [关闭]

使用 cURL 检查 FTPS 站点上是不是存在文件

Wireshark 查看FTPS(FTP over STL support)问题

OpenSSL:无法通过FTPS检索LIST