FtpWebRequest.KeepAlive不起作用

时间:2017-07-17 14:59:10

标签: c# .net ftpwebrequest

我尝试使用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,效果相同。

你有什么建议吗?

1 个答案:

答案 0 :(得分:1)

然而,.Net Core不支持

KeepAlive。每2.1它说:

  

&#34;我们不支持连接池,所以只是默默地忽略它。&#34;

FtpWebRequest on GitHub