试图在.NET中关闭FTP连接...只是...挂起?

时间:2016-05-03 06:26:11

标签: c# .net ftp proftpd

我正在尝试将我的ftp连接关闭到某个ftp,它只是挂起......永远!

  • 它只发生在一台FTP服务器上,所以我假设该服务器设置不好。代码可以很好地对抗其他服务器。
  • 仅在我上传的文件很大(180mb)时才会发生。当文件较小时,连接会正常关闭。
  • 目标FTP服务器正在运行 220 ProFTPD 1.3.4a服务器(Debian)
  • 对于大文件,开始时间:15:53:18.701。结束时间:16:00:22.179;大约7分钟。
  • 180MB文件 100%上传..所以当我尝试关闭连接以完成转移然后继续我的代码时。

这是代码..

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

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

是的,我知道我真的不需要致电.Close();,因为我正在using声明,但我这样做是为了指出问题。

有人可以帮忙提出建议吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

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

来自here(以及this SO answer)。