繁体   English   中英

在C#(.NET 4.6)中关闭保持活动状态的FTP或FTPS连接的最佳方法?

[英]Best method to close a keep-alive FTP or FTPS connection in C# (.NET 4.6)?

在C#(.NET 4.6)中,我使用保持活动的FTPS连接在这样的循环中下载几个文件:

foreach (string filename in filenames)
{
  string requestUriString = GetFtpUriString(myDir) + "/" + filename;
  FtpWebRequest request = (FtpWebRequest)WebRequest.Create(requestUriString);
  request.Method = WebRequestMethods.Ftp.DownloadFile;
  request.Credentials = new NetworkCredential(myFtpsUsername, myFtpsPassword);
  request.EnableSsl = true;
  request.ConnectionGroupName = myConnectionGroupName;
  request.KeepAlive = true;

  ... do something ...
}

循环完成后,我想关闭连接。 我找不到直接的方法来完成此任务。 我想出的是以下解决方法,它向FTP服务器发出了另一个低占用空间的请求,这次将KeepAlive标志设置为false

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(GetFtpUriString(myDir));
request.Method = WebRequestMethods.Ftp.PrintWorkingDirectory;
request.Credentials = new NetworkCredential(myFtpsUsername, myFtpsPassword);
request.EnableSsl = true;
request.ConnectionGroupName = myConnectionGroupName;
request.KeepAlive = false;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();

我现在想知道是否存在另一种更简单,更优雅,更直接的方法来关闭特定连接组的打开的FTP连接。

FtpWebRequest实例的连接池没有任何公共接口。


但是有一个简单的解决方案,只需在循环的最后一轮将KeepAlive设置为false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM