首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要关于在C#中提高ftp上传性能的建议

需要关于在C#中提高ftp上传性能的建议
EN

Stack Overflow用户
提问于 2010-08-16 05:41:27
回答 1查看 1.1K关注 0票数 1

我正在写的软件,上传和下载大量的文件使用ftp与远程服务器。下载速度很好,在4mb/s以上保持稳定。小的上传是瞬间完成的。我遇到的问题是,当我的程序上传一个很大的40Mb的zip文件时,我的性能非常差。它似乎以突发(100-200Kb/s)的速度上传,然后延迟一秒钟,并重复执行此操作,直到文件最终完成上传。以编程方式从同一服务器下载文件最多需要30秒,使用filezilla将同一文件上传到同一服务器需要大约相同的时间。通过该软件上传可能需要长达15分钟。显然有些地方不对劲。

我正在使用starksoft ftp库来处理这里的上传/下载:http://starksoftftps.codeplex.com/

下面是一个有问题的代码示例:

代码语言:javascript
复制
    FtpClient ftp = new FtpClient(sourcecfg.Host);
        ftp.MaxUploadSpeed = 0;
        ftp.MaxDownloadSpeed = 0;
        ftp.FileTransferType = TransferType.Binary;
        ftp.DataTransferMode = TransferMode.Passive;
        ftp.Open(sourcecfg.FtpUserName, sourcecfg.FtpPassword); 
        ftp.PutFile(backupTempPath, targetcfg.getFullPath() + "wordpress-backup.zip",  FileAction.Create);                

我还尝试使用PutFile的重载版本,它接受流对象而不是路径字符串。结果是不变的。

附带内容:我正在用winxp在virtualbox实例中编译visual c# Express2008。我已经尝试了调试和生产可执行文件,结果没有任何变化。

这些问题看起来像是缓冲或节流问题,但在查看ftp类的内部代码时,我没有看到任何异常,我特别将其设置为不节流。对这个特定的ftp组件库有什么建议或评论吗?

EN

回答 1

Stack Overflow用户

发布于 2010-11-16 11:03:48

了解使用FileZilla的连接是主动模式连接还是被动模式连接可能很有趣。其他有趣的事情是尝试使用FTP客户端下载文件,该客户端显示客户端和服务器之间的对话框。我不确定FileZilla是否会向您显示此信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3489390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档