2013-07-16 130 views
5

我想基於從FTP server..I他們的日期時間可以從CuteFTP的第三方,而每一件事訪問此FTP下載文件是Okey..but當我行運行下面的代碼GetRespone()我收到此錯誤:操作已超時。 我從這個FTP程序與Web客戶端下載requet一個示例文件,它是fine..but我需要使用FtpWebRequest獲得listDirectoryDe​​tail和Web客戶端不支持that..and一件事,有在請求一個例外:FtpWebRequest.ContentTypeSystem.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用戶/通過它會得到一個身份驗證或登錄(不知道)錯誤。 – Parid0kht

+0

嘗試更改URI映射到物理存在的文件,如「」 ftp://192.168.1.5:2100/C:/test.txt」和變更請求的方法來request.Method = WebRequestMethods.Ftp.DownloadFile;看看有什麼你知道的。 –

回答

12

我解決我的問題......在UsePassive屬性應設置爲True,當它是真實的客戶應啓動數據端口

reqFTP.UsePassive = true;