当前位置: 首页 > 知识库问答 >
问题:

FTP 425无法打开IIS后面的数据连接

韶亮
2023-03-14

我需要编写一个连接到FTP服务器的应用程序。此FTP服务器不允许被动模式连接。我可以使用Filezilla连接到FTP服务器。

开发了一个C#WCF服务,它使用FTPWebRequest类连接到此FTP服务器。以下是FTPWebRequest对象的基本设置:

ftpreq.Proxy = null;
ftpreq.KeepAlive = true;
ftpreq.UsePassive = false;

当我从Visual Studio(Ctrl F5)运行WCF服务时,它连接到FTP服务器并下载所需的文件,没有任何问题

但是,当我在本地IIS 7.5中托管该服务时,它无法连接到FTP服务器,出现以下错误:

远程服务器返回错误:(425)无法打开数据连接。

在谷歌搜索了一下这个问题后,我试着绕过防火墙设置,但没有用。不确定是否与某些IIS安全问题或其他问题有关。

任何帮助都将不胜感激

共有3个答案

柳灿
2023-03-14

我评论了以下设置:

UseBinary、Proxy、KeepAlive、UsePassive

现在工作良好:

            FtpWebRequest reqFTP;
            reqFTP = (FtpWebRequest)WebRequest.Create(new Uri(ftpLocation + remoteDir));
            //reqFTP.UseBinary = true;
            reqFTP.Credentials = new NetworkCredential(ftpUser, ftpPassword);
            reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
            //reqFTP.Proxy = null;
            //reqFTP.KeepAlive = false;
            //reqFTP.UsePassive = false;
            response = reqFTP.GetResponse();
            reader = new StreamReader(response.GetResponseStream());
            string line = reader.ReadLine();

此代码来自microsoft论坛:https://social.msdn.microsoft.com/Forums/en-US/079fb811-3c55-4959-85c4-677e4b20bea3/downloading-all-files-in-directory-ftp-and-c?forum=ncl

钱青青
2023-03-14

这里是复杂解

步骤1单个ftp(非ftps)使用两个网络信道(端口和端口范围)。一个(tcp: 21)用于身份验证,第二个用作数据通道。

在iis上配置ftp时,为验证和控制通道打开21端口,然后在“ftp防火墙支持”的iis控制面板中指定与ftp服务器连接的网络接口的数据(5000-6000)和外部ip的端口范围。

步骤2最后,在windows防火墙中打开tcp:21并创建custon规则,允许在tcp:5000-6000上进行连接。重新启动系统(或只是重新启动服务)。

就这些。

只需记住,iis上的ftp使用tcp: 21控制/auth和tcp: 5000-6000数据。tcp: 5000-6000可能是iis管理器第一次更改,并在windows防火墙第二次打开。

益清野
2023-03-14

这是我的方式:

启动\控制面板\ Windows防火墙\允许的程序。

在这里勾选应用程序上的复选框以允许它通过Windows防火墙。回想起勾选“家庭/工作(私人)”复选框以及“公共”复选框。

祝你好运

 类似资料:
  • 我用这个上传一些文件。如果我在本地连接中,它可以工作,但如果我使用外部连接,我会收到以下消息:

  • 我正在使用spring hibernate开发一个应用程序,如果我使用的是199.892.2.345这样的数据库,我就可以连接到该数据库并执行cud操作,但是如果我将其更改为spring config中的Vinayaka.cloudapp.net,111这样的云数据库,我会得到下面的错误,下面是我正在使用的spring config文件, 错误

  • 一个ASP.NET web项目加载了解决方案,但我得到了这个错误

  • 我在hibernate newbie中使用Spring,我遵循了一步一步的教程,在mysql中它可以工作,但是如果我改为firebird,我会遇到下一个错误。 Estado HTTP 500 - 请求处理失败;嵌套的异常是组织.springframework.事务.无法创建事务异常:无法打开Hibernate会话进行交易;嵌套异常是组织.Hibernate.异常.通用JDBC异常: 无法打开连接

  • 有关您编写的代码问题的问题必须描述特定问题-并且在问题本身中包含有效代码以重现它。有关指导,请参阅SSCCE. org。 在我的应用程序中,我有一个模块,用于在数据库中搜索用户并在jsp内的表中显示他们的信息。我只是在应用程序中设置了Spring Security性。我能够从登录页面连接到数据库,尽管出于某种原因,DAO的CRUD操作(在本例中是搜索)都不起作用。 谢谢,如果我能提供更多信息,请告