Archived Forum Post

Index of archived forum posts

Question:

ftp2.GetFile fails - 426 Data connection error

Jul 11 '12 at 07:14

A customer of mine who uses my program is having problems to download files. Earlier I was able to fix issues he had by adding http-proxy support and very long connection, idle and read timeouts. He is now able to list the ftp directory contents, but downloading (GetFile) fails. Passive or Active mode doesn't seem to help.

When he uses WS_FTP pro he can download files. Any ideas appreciated.

Here is the sessionlog (I changed some hostnames and ip addresses):

220 Service ready for new user.
.
USER someuser
331 User name okay, need password for someuser.
.
PASS ****
230 User logged in, proceed.
.
TYPE I
200 Command TYPE okay.
.
PASV
227 Entering Passive Mode (81,80,106,65,27,88)
.
RETR pickup/1382520120629100517ALMERYS.zip
150 File status okay; about to open data connection.
426 Data connection error.
.
QUIT
======================================
Fin du balayage du répertoire FTP

and here is the LastErrorText

  GetFile:
    DllDate: Apr 20 2012
    UnlockPrefix: WATCHDFTP
    Username: VMADMCENTER1:a3804667
    Architecture: Little Endian; 32-bit
    Language: Visual C++ 9.0
    ProgressMonitoring:
      enabled: yes
      heartbeatMs: 0
      sendBufferSize: 65536
    --ProgressMonitoring
    AutoGetSizeForProgress: 0
    localFilename: C:almeryspickup\1382520120629100517ALMERYS.zip
    GetFileToOutput_1:
      getFileToOutput2_1:
        ModeZ: 0
        BinaryMode: 1
        Passive transfer mode
        hostAddr: 22.22.222.22
        DataConnect:
          hostname: 22.22.222.22
          port: 7000
          HttpProxyConnect:
            proxyHostname: proxy.some.host.fr
            proxyPort: 8080
            ConnectTimeoutMs_1: 600000
            calling ConnectSocket2
            IPV6 enabled connect with NO heartbeat.
            connectingTo: proxy.some.host.fr
            dnsCacheLookup: proxy.some.host.fr
            dnsCacheHit: 221.11.11.11
            GetHostByNameHB_ipv4: Elapsed time: 0 millisec
            myIP_1: 126.126.21.144
            myPort_1: 1748
            connect successful (1)
            ConnectRequest: CONNECT 22.22.222.22:7000 HTTP/1.1
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Host: 22.22.222.22
            ConnectResponseHeader: HTTP/1.1 200 Connection established
            firstLine: HTTP/1.1 200 Connection established
          --HttpProxyConnect
        --DataConnect
        PassiveDataConnectionSetupTimeMs: Elapsed time: 46 millisec
        RetrFilename: [pickup/1382520120629100517ALMERYS.zip]
        RETR_reply: 150 File status okay; about to open data connection.
        DownloadRate: 0
        TotalNumBytesReceived: 0
        ReceiveTimeMs: Elapsed time: 301656 millisec
        Data read fatal error.
        statusCode3: 426
        finalReply: 426 Data connection error.
        RETR failed after reading data.
        Filename: pickup/1382520120629100517ALMERYS.zip
        FtpResponse22: 426 Data connection error.
      --getFileToOutput2_1
    --GetFileToOutput_1
    MDTM is not supported by this FTP server.
    Cannot maintain the last-modified date/time automatically.
    TotalTimeMs: Elapsed time: 301734 millisec
    Failed.
  --GetFile
--ChilkatLog


Answer

Gert,

If an HTTP proxy is used with FTP, then the only valid choice is to use Passive mode. Therefore, you wouldn't ever want to try Active (non-passive) mode.

Check to see if these new builds solve the problem:
32-bit: http://www.chilkatsoft.com/preRelease/chilkat-9.3.1-x86-vc9.zip
64-bit: http://www.chilkatsoft.com/preRelease/chilkat-9.3.1-x86_x64-vc9.zip


Answer

Thanks, we will give it a try and let you know.


Answer

It looks like the error is exactly the same. Any other ideas?

** start download pickup/1382520120629100517ALMERYS.zip to C:\almerys\pickup\\1382520120629100517ALMERYS.zip
** download fails!ChilkatLog:
  GetFile:
    DllDate: Jul  6 2012
    UnlockPrefix: WATCHDFTP
    Username: someuser
    Architecture: Little Endian; 32-bit
    Language: Visual C++ 9.0
    ProgressMonitoring:
      enabled: yes
      heartbeatMs: 0
      sendBufferSize: 65536
    --ProgressMonitoring
    AutoGetSizeForProgress: 0
    localFilename: C:\almerys\pickup\\1382520120629100517ALMERYS.zip
    GetFileToOutput_1:
      getFileToOutput2_1:
        ModeZ: 0
        BinaryMode: 1
        Passive transfer mode
        hostAddr: 22.22.222.22
        DataConnect:
          hostname: 22.22.222.22
          port: 7000
          HttpProxyConnect:
            proxyHostname: proxy.some.host.fr
            proxyPort: 8080
            ConnectTimeoutMs_1: 600000
            calling ConnectSocket2
            IPV6 enabled connect with NO heartbeat.
            connectingTo: proxy.some.host.fr
            dnsCacheLookup: proxy.some.host.fr
            dnsCacheHit: 221.11.11.11
            GetHostByNameHB_ipv4: Elapsed time: 0 millisec
            myIP_1: 126.126.21.144
            myPort_1: 4852
            connect successful (1)
            ConnectRequest: CONNECT 22.22.222.22:7000 HTTP/1.1
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Host: 22.22.222.22
            ConnectResponseHeader: HTTP/1.1 200 Connection established
            firstLine: HTTP/1.1 200 Connection established
          --HttpProxyConnect
        --DataConnect
        PassiveDataConnectionSetupTimeMs: Elapsed time: 47 millisec
        RetrFilename: [pickup/1382520120629100517ALMERYS.zip]
        RETR_reply: 150 File status okay; about to open data connection.
        DownloadRate: 0
        TotalNumBytesReceived: 0
        ReceiveTimeMs: Elapsed time: 302094 millisec
        Data read fatal error.
        statusCode3: 426
        finalReply: 426 Data connection error.
        RETR failed after reading data.
        retrRemotePath5: pickup/1382520120629100517ALMERYS.zip
        FtpResponse22: 426 Data connection error.
      --getFileToOutput2_1
    --GetFileToOutput_1
    MDTM is not supported by this FTP server.
    Cannot maintain the last-modified date/time automatically.
    TotalTimeMs: Elapsed time: 302188 millisec
    Failed.
  --GetFile
--ChilkatLog


Answer

mmmm, he now tried in his production environment and it seems to work (FTPS with http proxy).

Perhaps still a few issues I might contact you later about.