Я пишу программу на C # / VS2005 для резервного копирования нашей производственной базы данных, сжатия ее и передачи на удаленный сервер. У меня есть простой FTP-сайт, настроенный на удаленном сервере.
Проблема в том, что файл передается только примерно наполовину (~ 500 - 600 МБ), и программа выдает исключение:
«Существующее соединение было принудительно закрыто удаленным хостом»
Код, который я использую, был в основном вырезан и вставлен отсюда, написанный Джеймоном Мэтью с использованием сокетов:
http://www.csharphelp.com/archives/archive9.html
Я исследовал проблему, и похоже, что я ничего не могу сделать, чтобы предотвратить закрытие соединения, и единственный способ исправить это - использовать «асинхронные» методы сокетов.
Я искал и не могу найти ни одного примера кода для этого, и я не могу поверить, что эта простая задача, которую я пытаюсь выполнить, оказывается настолько сложной.
Существует ли простой способ передачи большого (~ 1,2 ГБ) локального файла на удаленный FTP-сайт, который не прервется, если соединение будет закрыто удаленным хостом (я предполагаю, что ему придется повторно подключиться и возобновить перевод)?
Мой босс убьет меня, если узнает, сколько времени я уже потратил на это, а у нас все еще нет резервной копии с предыдущего дня на удаленном сервере.
Я бы предпочел сделать все из программы .NET (в настоящее время наша система представляет собой гигантскую машину Рубе Голдберга), но мне нужно быстрое и простое решение.
Спасибо
Steve