我正在用C#/ VS2005编写一个程序来备份我们的生产数据库,压缩它并将其传输到远程服务器。我在远程服务器上设置了一个简单的ftp站点。
问题是文件只传输大约一半(~500 - 600 MB),程序抛出异常:
“远程主机强行关闭现有连接”
我使用的代码基本上是由Jaimon Mathew使用套接字从这里剪切并粘贴的:
http://www.csharphelp.com/archives/archive9.html
我已经研究过这个问题,看起来我无法阻止连接被关闭,我唯一能解决的问题就是使用套接字的“异步”方法。
我一直在搜索,找不到任何示例代码来执行此操作,我无法相信我尝试执行的这个简单任务证明是如此困难。
是否有一种简单的方法可以将大型(~1.2 GB)本地文件传输到远程ftp站点,如果远程主机关闭连接,则不会失败(我猜它必须重新连接并且恢复转移)?
我的老板如果发现我已经花了多少时间就会杀了我,而且我们仍然没有在前一天在远程服务器上备份。
我更愿意在.NET程序中完成所有工作(我们的系统目前是一台巨大的Rube Goldberg机器),但我需要一个快速简便的解决方案。
谢谢,
史蒂夫
答案 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使用的机制相同。