WebException:无法打开被动数据连接

时间:2014-11-07 05:32:49

标签: c# .net ftp unity3d ftpwebrequest

可能这个问题似乎与您重复。但我仍然想要解决问题的确切原因。

问题是我使用用户名和密码从FTP请求文件。在ftp连接初始化之后,它会抛出异常 WebException:无法打开被动数据连接

但我可以使用Chrome等网页浏览器下载相同的文件,并使用相同的用户名和密码。

这是一款Unity 3D游戏,实际上会请求用户信息,并会下载一些与用户相关的文件。我正在使用MonoDevelop代码

服务器是AWS服务器。它的IP地址最近更改​​并重新启动。我正在使用新的IP并获取XML格式的文件列表。我能够解析xml数据并能够请求该文件。

以下是我用于FTP的代码示例。

reqFTP = (FtpWebRequest)FtpWebRequest.CreateDefault(new Uri("ftp://" + serverIP + ":" + serverPort + "/" + this.receiveInfo.fileDirectory + "/" + downloadLoc));
    reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
    Debug.Log (reqFTP.RequestUri);
    reqFTP.UseBinary = true;
    reqFTP.UsePassive = true;

    reqFTP.Credentials = new NetworkCredential(this.receiveInfo.ftpUsername , this.receiveInfo.ftpPassword);
    object state = new object ();
    FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();

请帮我解决这个问题。至少有一些有用的信息非常受欢迎,因为我对这种东西很新。

1 个答案:

答案 0 :(得分:0)

我找到了问题的答案。

问题出在FTP配置上。重新启动服务器时,在服务器上强制执行旧的ftp设置。因此它阻止了来自客户端的所有被动ftp连接。 AWS支持人员更改了配置,然后开始工作。

配置文件更改后,问题得到解决。无需更改代码。代码是正确的。