Archived Forum PostQuestion:
Hi Team,
I am trying to upload one sample file to FTPs (TLS).
I am geeting below log error -
---------Upload Error --------- ChilkatLog:
PutFile:
DllDate: Aug 30 2017
ChilkatVersion: 9.5.0.69
UnlockPrefix: Anything for 30-day trial
Architecture: Little Endian; 32-bit
Language: .NET 4.5
VerboseLogging: 0
RemoteFilename: test.txt
LocalFilename: C:Testtest.txt
ProgressMonitoring:
enabled: yes
heartbeatMs: 0
sendBufferSize: 65536
--ProgressMonitoring
IdleTimeoutMs: 60000
ReceiveTimeoutMs: 60000
ConnectTimeoutSeconds: 30
soRcvBuf: 4194304
soSndBuf: 262144
uploadFromLocalFile:
localFileSize: 39
uploadFromDataSource:
initialGreeting: 220 PwC CFT FTP Server
restartNext: 0
modeZ: 0
binaryMode: 1
pbsz_protp:
simpleCommand:
sendCommand:
sendingCommand: PROT P
--sendCommand
readCommandResponse:
replyLineQP: 200 Protection level set to P
--readCommandResponse
--simpleCommand
--pbsz_protp
setupDataConnection:
active transfer mode
setupActiveDataSocket:
Using ephemeral port range for Active data connection.
dataPort: 60543
portIpAddress: 172.22.64.87
MyIPv4: 172,22,64,87,236,127
sendCommand:
sendingCommand: PORT 172,22,64,87,236,127
--sendCommand
readCommandResponse:
replyLineQP: 200 Port command successful
--readCommandResponse
--setupActiveDataSocket
--setupDataConnection
sendUploadCommand:
sendCommand:
sendingCommand: STOR test.txt
--sendCommand
--sendUploadCommand
completeDataConnection:
acceptDataConnection:
controlChannelReply:
Reading intermediate response..
readCommandResponse:
replyLineQP: 150 Opening data channel for file upload to server of "/test.txt"
--readCommandResponse
--controlChannelReply
controlChannelReply:
Reading intermediate response..
readCommandResponse:
replyLineQP: 425 Can't open data connection for transfer of "/test.txt"
--readCommandResponse
Final response indicates error.
--controlChannelReply
--acceptDataConnection
Failed to accept data connection.
--completeDataConnection
Failed to complete data connection.
--uploadFromDataSource
Failed.
--uploadFromLocalFile
TotalTime: Elapsed time: 10781 millisec
Failed.
--PutFile
--ChilkatLog
Code Snippet -
Chilkat.Ftp2 ftp = new Chilkat.Ftp2();
bool success;
// Any string unlocks the component for the 1st 30-days.
success = ftp.UnlockComponent("Anything for 30-day trial");
if (success != true)
{
Console.WriteLine(ftp.LastErrorText);
return ftp.LastErrorText;
}
// If this example does not work, try using passive mode
// by setting this to true.
ftp.Passive = false;
ftp.Hostname = parameters.HostName;
ftp.Username = parameters.UserName;
ftp.Password = parameters.Password;
ftp.Port = 20017;
// We don't want AUTH SSL:
ftp.AuthTls = true;
// We want Implicit SSL:
ftp.Ssl = false;
// Connect and login to the FTP server.
success = ftp.Connect();
if (success != true)
{
Console.WriteLine(ftp.LastErrorText);
ftp.Disconnect();
return ftp.LastErrorText;
}
else
{
// LastErrorText contains information even when
// successful. This allows you to visually verify
// that the secure connection actually occurred.
Console.WriteLine(ftp.LastErrorText);
Console.WriteLine("FTPS Channel Established!");
success = ftp.ChangeRemoteDir("/");
if (success != true)
{
return ftp.LastErrorText;//Directory Change Error.
}
else
{
success = ftp.PutFile("C:\\Test\\test.txt", "test.txt");
if (success != true)
{
//ftp.Disconnect();
return "---------Upload Error --------- " + ftp.LastErrorText + "---" ;//Upload Error.
}
else
{
ftp.Disconnect();
return "File Uploaded sucessfully.";
}
}
Did you try setting ftp.Passive to true? When set to false you are in active mode which often fails. In Active mode the FTP server will open a connection to your computer (an incoming connection) which often fails (firewalls). In Passive mode all connections are made by your program (outgoing connections to the FTP server). Firewalls normally won't object to that.