我尝试使用FtpWebRequest下载多个文件,但只有一个登录到服务器。我使用KeepAlive属性(也使用.ConnectionGroupName),但它不起作用。
代码:
List<string> downloaded = new List<string>();
NetworkCredential networkCredential = new NetworkCredential(_ftpConfiguration.Username, _ftpConfiguration.Password);
foreach (var dataId in requestDataIDs)
{
string uri = "ftp://" + _ftpConfiguration.Host + "//" + dataId;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri);
request.ConnectionGroupName = "myConnection";
request.KeepAlive = true;
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = networkCredential;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
downloaded.Add(reader.ReadToEnd());
reader.Close();
response.Close();
}
return downloaded;
在“reader.ReadToEnd()”之后将“QUIT”消息发送到服务器。 当我在循环中评论最后三行时,没有“QUIT”消息,但每个请求都会登录到服务器。
我想在.NET Core 2.0上制作它,但也尝试过.NET Framework 4.6.1,效果相同。
你有什么建议吗?
答案 0 :(得分:1)