2013-07-16 5 views
5

Я хочу загрузить файлы на основе их дат с ftp-сервера. Я могу получить доступ к этому Ftp от стороннего участника CuteFtp, и каждая вещь Okey..but, когда я запускаю код ниже по строке GetRespone() Я получаю эту ошибку: операция истекло. Я загружаю образец файла из этого FTP программным способом с помощью запроса webclient, и это было прекрасно .. но мне нужно использовать FtpWebRequest, чтобы получить listDirectoryDetail, и webClient не поддерживает это ... и еще одна вещь: в запросе есть исключение: FtpWebRequest.ContentType threw исключение типа System.NotSupportedException.FtpWebResponse, время ожидания операции

вот мой код:

Uri uri = new Uri("ftp://192.168.1.5:2100/");//the private address 
     if (uri.Scheme != Uri.UriSchemeFtp) 
     { 
      return; 
     } 
     FtpWebRequest reqFTP; 
     reqFTP = (FtpWebRequest)WebRequest.Create(uri);        
     reqFTP.Credentials = new NetworkCredential("myuser", "mypass"); 
     reqFTP.KeepAlive = false; 
     reqFTP.Method = WebRequestMethods.Ftp.ListDirectoryDetails;        
     reqFTP.UseBinary = true; 
     reqFTP.Proxy = null; 
     reqFTP.UsePassive = false; 
     FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse(); 

ПОМОГИТЕ :(

+0

сделал вам проверить имя пользователя и пароль NetworkCredential? потому что я предполагаю, что вы скопировали код, как есть. –

+0

, конечно, я проверил это !! .. с wron g user/pass, он получит аутентификацию или логин (не уверен). – Parid0kht

+0

попытайтесь изменить Uri для сопоставления с файлом физического существования, например "ftp://192.168.1.5:2100/C:/test.txt", и запросите метод запроса request.Method = WebRequestMethods.Ftp.DownloadFile и посмотреть, что –

ответ

12

Я решить мою проблему ... UsePassive свойство должно быть установлено значение Да, если это правда, клиент должен инициировать соединение через порт данных

reqFTP.UsePassive = true;