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

问题描述:

我正在用C#/ VS2005编写一个程序来备份我们的生产数据库,将其压缩并传输到远程服务器。我在远程服务器上设置了一个简单的ftp站点。通过asp.net用C#将大文件传输到远程服务器的各种方法#

的问题是,该文件只有大约一半的方式转让(〜500 - 600 MB),并在程序引发异常:

的“一个现有的连接被强行关闭远程主机”代码我使用的是基本剪切和粘贴在这里,通过Jaimon马修写的,使用套接字:

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

我研究这个问题,它看起来并不像有什么我可以做阻止连接被关闭,我唯一的解决方法是使用套接字的“异步”方法。

我一直在寻找,找不到任何示例代码来做到这一点,我不敢相信我试图执行这个简单的任务证明是如此困难。

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

如果我的老板发现我已经花费了多少时间,我会杀了我,而且我们还没有前一天在远程服务器上的备份。我更喜欢从.NET程序(我们的系统目前是一个巨大的Rube Goldberg机器)做所有事情,但我需要一个快速简单的解决方案。

感谢,

史蒂夫

+0

一些FTP服务器支持恢复功能,也许这会有所帮助? – Lucero 2009-04-16 19:03:42

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

public void upload(string fileName,Boolean resume) 

调用是否与简历功能=真不工作?

+0

我会试着找出... – Steve 2009-04-16 19:36:50

+0

我想我应该感到愚蠢的是不尽早尝试这个...我向上传方法添加了一些代码,以便在连接关闭时必须退出,并且必须更改还有一些其他的东西可以让它起作用。谢谢!!! – Steve 2009-04-16 20:53:03

这里是关于如何做FTP的whole bunch of C# examples。具体来说,看看Restart/Retry FTP Upload的例子。

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