[英]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.