[227进入被动模式

问题描述 投票:0回答:1

我有一段代码来获取所有文件的列表,这是一个Ftp服务器,但是我随机收到此错误连接尝试失败,因为连接的一方在一段时间后未正确响应,或者建立的连接失败,因为连接的主机未能响应xxx.xx.xx.xx:xxxxx远程服务器返回错误:227进入被动模式

这是我正在使用的代码,但出现此错误:

    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(("..." + ftpFolderPath));
    request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
    request.Credentials = new NetworkCredential(@"...", @"...");
    FtpWebResponse response = (FtpWebResponse)request.GetResponse();
    string names = string.Empty;
    if (response.StatusCode == FtpStatusCode.EnteringPassive)
    {
        return null;
    }
    else if (response.StatusCode == FtpStatusCode.OpeningData)
    {
        try
        {
            Stream responseStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(responseStream);
            names = reader.ReadToEnd();
            reader.Close();
            responseStream = null;
            reader = null;
        }
        catch (Exception)
        {
            return null;
        }
        response.Close();
        request = null;
        response = null;
        GC.Collect();
    }

任何想法我该如何解决?

c# ftp .net-framework-version ftpwebrequest passive-mode
1个回答
0
投票

您可以测试禁用被动移动。您需要根据要求添加此内容:

request.UsePassive = false;

如果需要,您可以找到有关被动模式here的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.