【问题标题】:WebException: Cannot open passive data connectionWebException:无法打开被动数据连接
【发布时间】:2014-11-07 05:32:48
【问题描述】:

这个问题对你来说可能是重复的。但我仍然想要解决我的问题的确切原因。

问题是我从 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();

请帮我解决这个问题。非常感谢至少一些有用的信息,因为我对这类东西很陌生。

【问题讨论】:

    标签: c# .net ftp unity3d ftpwebrequest


    【解决方案1】:

    我找到了问题的答案。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 2011-09-18
      • 2023-03-25
      相关资源
      最近更新 更多