I have a problem with Put() which occurs more on large files than small ones, the example below was for a 24MB transfer.
My file transfers seem to complete on the ftp server as per the server log trace below (FileZilla server):
(000006) 28/01/2006 20:39:50 - gdl (81.101.133.197)> PASV
(000006) 28/01/2006 20:39:50 - gdl (81.101.133.197)> 227 Entering Passive Mode (194,164,218,228,195,84)
(000006) 28/01/2006 20:39:50 - gdl (81.101.133.197)> STOR Claim Documents.zip.25504099_1C14B45FF19C46EE40C953FE3F154AFD
(000006) 28/01/2006 20:39:50 - gdl (81.101.133.197)> 150 Connection accepted
(000006) 28/01/2006 20:57:39 - gdl (81.101.133.197)> 226 Transfer OK
(000006) 28/01/2006 20:57:39 - gdl (81.101.133.197)> disconnected.
But the call to ValidateTransfer within the ftp client Put method never sees the response code, ultimately generating the following exception: "Unable to read data from the transport connection."
The end part of the ftp client debug trace is below:
DEBUG [EnterpriseDT.Net.Ftp.FTPControlSocket] 28 Jan 2006 20:36:58.954 : ---> PASV
DEBUG [EnterpriseDT.Net.Ftp.FTPControlSocket] 28 Jan 2006 20:36:58.984 : 227 Entering Passive Mode (194,164,218,228,195,84)
DEBUG [EnterpriseDT.Net.Ftp.FTPControlSocket] 28 Jan 2006 20:36:59.014 : ---> STOR Claim Documents.zip.25504099_1C14B45FF19C46EE40C953FE3F154AFD
DEBUG [EnterpriseDT.Net.Ftp.FTPControlSocket] 28 Jan 2006 20:36:59.044 : 150 Connection accepted
DEBUG [EnterpriseDT.Net.Ftp.FTPClient] 28 Jan 2006 20:54:48.700 : Transferred 25484282 bytes to remote host
I have tried various timeouts from 60s to infinity i.e timeout values of 60000 to 0 (which causes Put never to return).
I have also tried 2 ftp servers: FileZilla and Ocean - both exhibit the same behaviour so I believe the problem is in the client rather than the server.
Can anybody help?