使用C#通过asp.net将大文件传输到远程服务器的各种方法

时间:2009-04-16 19:00:55

标签: .net ftp connection transfer

我正在用C#/ VS2005编写一个程序来备份我们的生产数据库,压缩它并将其传输到远程服务器。我在远程服务器上设置了一个简单的ftp站点。

问题是文件只传输大约一半(~500 - 600 MB),程序抛出异常:

“远程主机强行关闭现有连接”

我使用的代码基本上是由Jaimon Mathew使用套接字从这里剪切并粘贴的:

http://www.csharphelp.com/archives/archive9.html

我已经研究过这个问题,看起来我无法阻止连接被关闭,我唯一能解决的问题就是使用套接字的“异步”方法。

我一直在搜索,找不到任何示例代码来执行此操作,我无法相信我尝试执行的这个简单任务证明是如此困难。

是否有一种简单的方法可以将大型(~1.2 GB)本地文件传输到远程ftp站点,如果远程主机关闭连接,则不会失败(我猜它必须重新连接并且恢复转移)?

我的老板如果发现我已经花了多少时间就会杀了我,而且我们仍然没有在前一天在远程服务器上备份。

我更愿意在.NET程序中完成所有工作(我们的系统目前是一台巨大的Rube Goldberg机器),但我需要一个快速简便的解决方案。

谢谢,

史蒂夫

3 个答案:

答案 0 :(得分:2)

这是如何进行FTP的whole bunch of C# examples。特别是,请查看Restart/Retry FTP Upload示例。

答案 1 :(得分:1)

您链接的代码似乎支持恢复上传:

public void upload(string fileName,Boolean resume)

用resume = true调用该函数不起作用吗?

答案 2 :(得分:0)

我正在使用后台智能传输服务(BITS),通过HTTP上传。它是一个特定于平台的解决方案,但工作正常且易于使用。它与Windows Update使用的机制相同。