FtpWebResponse, the operation timed out

Paridokht picture Paridokht · Jul 16, 2013 · Viewed 11.6k times · Source

I want to download files based on their date time from a ftp server..I can access this Ftp from CuteFtp third party and every thing is Okey..but when I run the code below at line GetRespone() I get this error: the operation has timed out. I download a sample file from this FTP programmatically with webclient requet and it was fine..but I need to use FtpWebRequest to get listDirectoryDetail and webClient does not support that..and one more thing, there is an exception in request: FtpWebRequest.ContentType threw an exception of type System.NotSupportedException.

here is my code:

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();

PLEASE HELP :(

Answer

Paridokht picture Paridokht · Jul 17, 2013

I've Solved my Problem!...the UsePassive property should be set to True, when it is true the client should initiate a connection on the data port

reqFTP.UsePassive = true;