2016-05-03 2 views
0

Я пытаюсь закрыть соединение ftp с некоторыми ftp, и это просто зависает ... навсегда!Попытка закрыть FTP-соединение в .NET ... просто .. висит?

  • это происходит только с 1 FTP-сервером, поэтому я предполагаю, что с этим сервером есть что-то плохое. Код отлично работает с другими серверами.
  • происходит только тогда, когда файл, загружаемый мной, огромен (180 МБ). Соединение закрывается, когда файлы (файлы) малы.
  • FTP назначения сервер работает 220 ProFTPD 1.3.4a сервер (Debian)
  • Для большого файла, время начала: 15: 53: 18,701. Время окончания: 16: 00: 22,179; Примерно 7 минут.
  • Файл 180MB is 100% загружен .. поэтому я пытаюсь закрыть соединение для завершения передачи, а затем продолжить в своем коде.

вот код ..

using (var ftpStream = await ftpWebRequest.GetRequestStreamAsync()) 
     { 
      await inputStream.CopyToAsync(ftpStream); 

      _loggingService.Debug("Closing service...."); 
      ftpStream.Close(); 
      _loggingService.Debug("Closed.."); 
     } 

Да, я знаю, что я на самом деле не нужно вызывать .Close();, потому что я нахожусь в using заявление, но я сделал это, чтобы точно определить, к проблеме.

Может ли кто-нибудь помочь с предложениями, пожалуйста?

+0

Как выглядит ваша подпись метода? –

+0

[Включить ведение журнала] (http://stackoverflow.com/q/9664650/850848) и показать журнал. + Как долго вы пытались подождать? + Для простоты вы можете отлаживать это с помощью синхронных потоков? –

+0

Вы используете FTP через SSL случайно? – Castaglia

ответ

0

Попробуйте это:

// after finished uploading 
ftpWebRequest.Abort(); // <=== MAGIC PART 
// before ftpStream.Close() 

От here (а также this SO answer).

Смежные вопросы