2014-11-07 5 views
0

Возможно, этот вопрос вам кажется дублирующим. Но все-таки я хочу получить точную причину решения моей проблемы.WebException: невозможно открыть пассивное подключение к данным

Проблема в том, что я запрашиваю файл с FTP с именем пользователя и паролем. После инициализации соединения ftp это исключает исключение WebException: не удается открыть пассивное подключение данных.

Но я могу загрузить тот же файл с помощью браузера, такого как Chrome, с тем же именем пользователя и паролем.

Это 3D-игра Unity, в которой запрашивается информация о пользователе, и некоторые файлы, связанные с пользователем, будут загружены. Я использую 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

Я нашел ответ на свой вопрос.

Проблема была связана с конфигурацией FTP. Когда сервер был перезапущен, старые настройки ftp были наложены на сервер. Таким образом, он блокировал все пассивные FTP-соединения от клиентов. Лицо поддержки AWS изменило конфигурацию, после чего оно начало работать.

После изменения файла конфигурации проблема была решена. Нет необходимости менять код. Код правильный.