可能这个问题似乎与您重复。但我仍然想要解决问题的确切原因。
问题是我使用用户名和密码从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();
请帮我解决这个问题。至少有一些有用的信息非常受欢迎,因为我对这种东西很新。
答案 0 :(得分:0)
我找到了问题的答案。
问题出在FTP配置上。重新启动服务器时,在服务器上强制执行旧的ftp设置。因此它阻止了来自客户端的所有被动ftp连接。 AWS支持人员更改了配置,然后开始工作。
配置文件更改后,问题得到解决。无需更改代码。代码是正确的。