FtpWebRequest.KeepAlive не работает
Я пытаюсь загрузить более одного файла с помощью 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;
Сообщение "QUIT" отправляется на сервер после "reader.ReadToEnd()". Когда я комментирую последние три строки в цикле, нет сообщения "ВЫЙТИ", но также каждый запрос выполняет вход на сервер.
Я хотел бы сделать это на.NET Core 2.0, но также попробовал на.NET Framework 4.6.1 с тем же эффектом.
Есть ли у вас предложения?
1 ответ
KeepAlive
пока не поддерживается в.Net Core. в 2.1
это говорит:
"Мы не поддерживаем пул соединений, поэтому просто игнорируйте это".