FAQ
0. Purchase And Licenses
1. Install And Setup
2. Trial Version
3. Support
4. Proxy Servers
5. Platforms
6. Samples
7. Exceptions
8. FTP Protocol Questions
0. Purchase And Licenses
# Do we have to pay for each copy of our software we ship that includes your component?
No. The component is licensed per-developer, not per user.
Once you have purchased a license for each of your developers who directly
works with the component, you can redistribute the component DLLs
with your application royalty free and to any number of end users.
Back to the top...
# Is your product royalty free?
Yes. You can ship the component DLLs with your product
to any number of end users with no additional costs and
with no need of additional licenses.
Back to the top...
# Do I need to contact you to get a license key for each developer or end user?
No, you don't need to contact us.
The component you receive does not contain any limitations
and can be used by a developer and an end user without the need of any keys.
This also makes the so-called "xcopy deploy" possible.
Back to the top...
# How much does it cost in Euro?
We don't sell our components in Euro and the price in Euro depends on the current exchange rate.
Today, the rate is something like this.
Back to the top...
# What options do I have if my company has a policy of not buying over the internet?
Different payment possibilities are described in
How to order document. If there is
not suitable option for you, please contact us.
Back to the top...
1. Install And Setup
# How do I install and use Rebex FTP for .NET or FTP/SSL for .NET?
Unzip the archive into a folder of your choice and inspect the contents.
No installation is necessary.
The bin folder contains both debug and release versions of the assembly
and can be either used as an application-private assembly and deployed
within the directory structure of your application, or installed into GAC as
a shared assembly, which can be used by multiple applications on the machine.
To use the component from your project in Visual Studio .NET, just add a reference to it!
The manual is in documentation folder and the code samples are in examples.
Back to the top...
# How do I upgrade to a new version without having to recompile all the code?
We have written a document with detailed instructions.
Read Upgrading FTP for .NET and FTP/SSL for .NET.
Back to the top...
# How do I install FTP for .NET or FTP/SSL for .NET into Global Assembly Cache (GAC)?
There are two ways:
-
Start .NET Framework Configuration Management Console (Start -> Settings -> Control Panel -> Administrative Tools -> Microsoft .NET Framework Configuration).
Then select "Assembly Cache" and click "Add an Assembly to the Assembly Cache" to add Rebex.Net.Ftp.dll into GAC.
-
Use the gacutil command line utility. It can be usually found in Microsoft.NET\Framework\v1.*.* subfolder of the Windows folder
or inside the .NET Framework SDK tree.
See the .NET Framework SDK documentation
for a full description of the options supported by gacutil.
Back to the top...
# Do I have to install FTP for .NET or FTP/SSL for .NET into Global Assembly Cache to get it working?
No, you don't have to.
Both FTP for .NET and FTP/SSL for .NET can be used either as application-private assembly and deployed within
the directory structure of your application,
or installed into GAC as shared assembly, which can be used by multiple
applications on the machine.
Both approaches have their pros and cons. Application-private assemblies allow
simple xcopy deployment and provide complete control over assemblies that
are isolated to the application. Shared assemblies load a bit faster, especially
if several applications are using the same assembly simultaneously, because the
code from the same location on disk can be loaded only once and shared. Installing
into GAC also simplifies deploying bug fixes or security patches and
upgrading to a new versions.
This decision is up to you.
Back to the top...
2. Trial Version
# How do I register the trial version?
When you buy Rebex FTP for .NET or Rebex FTP/SSL for .NET, you will
receive an email with your login and password to a protected section
of our website, where you can download the full version of the component.
Back to the top...
| More info...
# How do I upgrade from trial version to full version when I already bought the component?
First of all, you need to download the full version of your component.
You can download the latest releases from the
protected section of our website.
Steps to upgrade your component in your project:
- Remove the reference to the trial version dlls in your project.
- Replace trial version dlls with the full version dlls.
- Add reference to the new dll files to your project.
- Recompile your project.
Back to the top...
# How do I determine whether my dll is a trial or full version?
To check which version your are actually using try to locate Rebex.*.dll on your disk
(typically somewhere under c:\program files\Rebex\ or in your project folder),
lookup it’s properties and check the "Version" tab and the "Comments" property.
If the dll is a trial version then you'll find "trial version" at the end of the string
in the "Value:" box. If the "trial version" text is missing then it's a full version dll.
Back to the top...
3. Support
# What do I need to do to get upgrades or bug fixes?
If you have bought FTP for .NET or FTP/SSL for .NET, you can download
the latest releases from the protected
section of our website. You will also receive an email when a new version is released.
When you report a bug, it gets fixed as soon as we are able to identify and correct it.
After the new version is tested, it appears in the protected
section and a new trial version gets released as well.
Back to the top...
# What kind of support do you offer?
Our preferred form of support is by email (support@rebex.net) and is free.
Phone support is also possible on demand.
Back to the top...
4. Proxy Servers
# Are there any samples of using a proxy available?
Yes, our free WinFormClient sample supports all the proxies.
You can use it test that FTP for .NET or FTP/SSL for .NET works for you before you buy!
Back to the top...
# I am trying to connect through HTTP proxy and it does not work! What is wrong?
Make sure your HTTP proxy supports HTTP CONNECT method.
If it doesn't, it will not work neither FTP for .NET nor FTP/SSL for .NET.
Try using Socks4/Socks5 proxy instead.
There are two ways of making FTP servers accessible through HTTP proxy:
-
The first one is a special HTTP CONNECT method, which makes it possible
to connect to virtually any port on any server on the Internet and therefore it
can also be used to connect to FTP servers. After a connection is made, it is
possible to communicate with the FTP server using the FTP protocol - the proxy
only initializes the connection and does not affect the traffic.
Rebex FTP for .NET and Rebex FTP/SSL for .NET does support this kind
of proxies - this is the HttpConnect type proxy.
-
The second one is just an extension of a regular HTTP GET requests that makes
it possible to access FTP URIs. Communication between the proxy and the FTP server
is using the FTP protocol, but the communication between the proxy and a client
on a computer on the local network is actually HTTP, not FTP. This is a huge
limitation - only basic functionality of the FTP server can be utilized this way.
If you absolutely need to use HTTP GET, you do not need a FTP component -
some decent HTTP component would be a better choice.
Back to the top...
# Does it work with Microsoft ISA Server?
Yes, it does.
Versions prior to 1.3.0.0 had problems in certan circumstances
with ISA Server's HttpConnect and Socks4a proxies. It is recommended
to use the latest available version of FTP for .NET or FTP/SSL for .NET.
Back to the top...
# I get an exception "Error 502 returned by a HTTP proxy (...)" when connecting through Microsoft ISA Server using HttpConnect proxy. Why?
The whole exception message is probably:
"Error 502 returned by a HTTP proxy (Proxy Error (The specified Secure Sockets Layer (SSL) port is not allowed. ISA Server is not configured to allow SSL requests from this port. Most Web browsers use port 443 for SSL requests.))."
This is caused by the default behavior of Microsoft ISA server,
which only allows requests to ports 443 and 563 using its
HTTP Connect method. (Primary use of HTTP Connect is to allow
SSL connections to HTTPS servers).
The Microsoft Knowledge Base article Q283284 addresses this issue.
To access FTP sites through ISA server's HTTP proxy,
access to all ports must be allowed. FTP's control connection port
is 21 by default, but data connections can use virtually any
port, because it is assigned by the FTP server. (Although allowing
port 21 and ports >1024 should be enough, there might be exceptions.)
To allow connections to all ports through the HTTP proxy, following VB script must be run on the ISA server:
set isa=CreateObject("FPC.Root")
set arraypolicy=isa.Arrays.GetContainingArray.ArrayPolicy
set tprange=arraypolicy.WebProxy.TunnelPortRanges
set tmp=tprange.AddRange("FTP", 1, 65535)
tprange.Save
After the script is run and "Microsoft ISA Server Control" service is restarted, it should work.
Back to the top...
5. Platforms
# Can I use the FTP for .NET or FTP/SSL for .NET component in ASP.NET?
Yes, you can. ASP.NET is still just .NET code.
However, it is not as easy as in ordinary applications.
There are several things to keep in mind:
- ASP.NET environment is multithreaded - several instances of the same page can be processed at the same time.
- Lot of FTP operations might take a long time to complete, especially file transfers.
- Even Connect and Login methods may take a long time to complete, so you probably wouldn't want
to call this again and again - instances of the Ftp can be made persistent by being stored in a Session
or Application objects for example...
Back to the top...
# Does it work with Windows Server 2003 (or .NET Framework 1.1)?
Yes, it does.
Back to the top...
# Does it work with the .NET Compact Framework?
Both Rebex FTP and Rebex FTP/SSL for Compact Framework are available.
Download FTP for .NET CF Trial Version
or FTP/SSL for .NET CF Trial Version.
Back to the top...
6. Samples
# Do you have any sample code on using FTP for .NET or FTP/SSL for .NET in ASP.NET?
No, not at the moment. However, it is on out list of future updates.
Back to the top...
# Do you have any examples on .......?
See the list of our free samples!
If what you need is missing, please let us know.
We are constantly improving the existing samples and writing new ones.
Back to the top...
# How do I resume an aborted download or upload?
See PutResume and GetResume methods of our ConsoleClient sample.
Run it and try using "putr" and "getr" commands to see it working.
Read the documentation of GetFile and PutFile methods.
Back to the top...
# How do I upload or downloading a whole directory tree?
Although the component itself does not have a method for this task, it can be implemented
easily using the methods provided. See PutDir method of our ConsoleClient sample on
how to upload a directory tree. Downloading a tree would be easy as well with the
help of our powerful Ftp.GetList method and FtpList class.
Back to the top...
7. Exceptions
# When I try to ......., an exception is thrown! Can you help me?
We need a bit more detailed description of what happened to be able to help you!
- What version of FTP for .NET or FTP/SSL for .NET are you using?
- What was the content of the stack trace of the exception?
- Are you able to do the same action using the FTP command line client provided with Windows or Un*x?
- Are you able to do the same action using our WinFormClient sample?
- Are you connecting through a proxy? If so, what type of proxy is it and what software does it use?
- Are you behind a firewall?
- ...
Back to the top...
# Why do I get an exception when I call the Logoff method?
Because the FTP server does not support this feature.
The Logoff method sends REIN command to the FTP server. Although REIN
is defined in RFC959, newer RFC1123 states it is not necessary for a server to
support it. Therefore, it is unsupported by certain FTP servers and even FTP proxies.
Please note that Logoff is only needed if what you want is to log off but remain
connected to the server and then login again as another user. This scenario is very rare.
If what you need is just to close the connection to the server, calling Disconnect method
is enough. Using Logoff is unnecessary and not recommended.
Typical FTP session looks like this:
ftp.Connect (hostname);
ftp.Login (username, password);
//... do something here ...
ftp.Disconnect ();
Back to the top...
8. FTP Protocol Questions
# What is the difference between active and passive mode?
There are two TCP/IP streams used by FTP protocol - the client
opens the control channel first by connecting to port 21 on the remote
server. When data is to be transfered (either a single file or a file list),
another channel is needed. This can be open either by the client
connecting to another port on the server (passive mode) or by
instructing the server to connect to a port on the client (active mode).
If a client is behind a NAT, it's often only possible to use
the passive mode, which mades it generally a safer bet, although
some firewalls are smart enough to allow active mode as well.
Back to the top...