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 это говорит:

"Мы не поддерживаем пул соединений, поэтому просто игнорируйте это".

FtpWebRequest на GitHub

Другие вопросы по тегам