c#app FTP错误:“227进入被动模式”

时间:2011-10-10 19:47:39

标签: c# ftp passive-mode

我无法解决这个问题我在客户的网站上。客户端有两个站点,都运行相同版本的应用程序。在一个站点没有问题,但在另一个站点我尝试从FTP站点下载文件时始终遇到以下错误:

  

“227进入被动模式(...)”

我一直在阅读SO和Google,但无法弄清问题。我想放弃这个客户,因为他们只是花钱。我正在使用.NET 3.5中包含的FTP功能。

有关可能发生的事情的任何线索?网络安全改变了吗?

4 个答案:

答案 0 :(得分:4)

使用客户端ftp进行测试,但仅在ACTIVE MODE中进行测试。

取消激活: 在工具 - 互联网选项 - 高级 - “使用被动FTP(用于防火墙和DSL调制解调器)”

答案 1 :(得分:2)

进入被动模式端口时出现防火墙问题?你能用Filezilla连接到FTP服务器吗?

答案 2 :(得分:2)

你可能会超时,你检查了防火墙吗?它可能阻止你的连接。

答案 3 :(得分:2)

要避免该错误,只需使用reqFTP.UsePassive = false;

reqFTP.UsePassive = false;

检查以下

                FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create("ftp://127.0.0.1/1542");
                ftpRequest.Credentials = new NetworkCredential("6584", "123456");
                ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
                ftpRequest.UsePassive = false;
                FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
                StreamReader streamReader = new StreamReader(response.GetResponseStream());

                List<string> directories = new List<string>();

                string line = streamReader.ReadLine();
                while (!string.IsNullOrEmpty(line))
                {
                    directories.Add(line);
                    line = streamReader.ReadLine();
                }

                streamReader.Close();
                return true;