Rebex FTP

FTP and FTPS client .NET library

Download 30-day free trial Buy from $349
More .NET libraries

Back to feature list...

Compatibility

See also platforms and standards the FTP library is compliant with.

XCOPY deployment 

When distributing an application using Rebex FTP library, simply copy the following DLL files (.NET assemblies) with your application:

  • Rebex.Common.dll
  • Rebex.Networking.dll
  • Rebex.Ftp.dll

There is no need to install, configure or distribute anything else to make them work.

Rebex FTP license is royalty-free - you can distribute your application to unlimited number of users or computers without any additional fees.

Supported FTP servers 

Rebex FTP library works with all standard-compliant FTP and FTPS (FTP over TLS/SSL) servers. It even works with many servers that implemented the FTP protocol incorrectly, are outdated, or simply buggy. Over the years we've added many workarounds and fixes for ill-behaved servers that our clients encountered in the wild. Most of the workarounds are activated automatically, so you don't have to do anything. It just works.

Examples of servers that work with Rebex FTP:

  • BlackMoon FTP Server
  • BulletProof FTP Server
  • Cerberus FTP Server
  • FileZilla server
  • Gene6 FTP Server
  • glFTPd
  • Globalscape EFT
  • Microsoft FTP publishing service (part of Microsoft IIS)
  • Ocean FTP Server
  • ProFTPD
  • RaidenFTPD
  • Serv-U FTP Server
  • Titan FTP Server
  • WarFTP Daemon
  • WS_FTP Server
  • Wu-FTPD

Workarounds for common server issues 

Workarounds for some server issues are not enabled by default because detecting them automatically would be troublesome. They can be enabled by setting the following properties of Ftp.Settings to true:

Property Purpose
DataPortRange Gets or sets the local TCP port range used for data transfers. This is usually only useful for active mode. See API documentation for details.
DoNotSendSignals The default behavior of Rebex FTP is to send IP and Synch signals before aborting the download using the ABOR command, unless a proxy is in use.
Setting this flag will disable sending of IP and Synch signals even through non-proxied FTP sessions. You might want to try disabling it if you experience problems while aborting data transfers.
DoNotSendAbort This flag will cause the library not to send ABOR command while aborting a download. The download will be aborted by closing the receiving socket.
EnableImproperDataCloseWorkaround Some firewalls and some versions of ActiveSync were observed not to close data connections properly, causing '426' server errors. This option enables a workaround for this.
KeepAliveDuringTransfer Send NOOP command during file transfers every 10 minutes.
This is only needed if the FTP control connection is otherwise being dropped by a buggy router or firewall while a very long data transfer is in progress.
The NOOP command can be alternatively sent explicitly using the KeepAlive method.
PauseBeforeUploadClose Performs a small pause before closing the encrypted upload connection when the transfer is finished.
Used as a workaround for servers that are unable to correctly handle the last block data if it is followed by a TLS CloseNotify message in the same TCP block.
SslDoNotInsertEmptyFragment Do not send empty record after successful handshake with CBC ciphers.
SilentUnprotect Forces the Unprotect method to do immediate unprotect without exchange of CloseNotify alert messages in TLS/SSL communication.
This is in violation of the RFC, but some broken servers need it, unfortunately.
SkipRollbackDetection Ignore the client version in premaster secret. This only affects server sockets.

Back to feature list...