Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / Languages / C# / February 2008

Tip: Looking for answers? Try searching our database.

ftp request through ftp proxy

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
squall - 23 Jan 2008 14:50 GMT
Hi,
I have to upload files on a ftp server through a ftp proxy with
Dotnet.
I have a 'System.InvalidOperationException' with this message : "The
requested FTP command is not supported when using HTTP proxy". Is
there a solution to use a FTP proxy and not a HTTP proxy ?

Thanks
Marc

My code (in CLI/C++, but the same in C#) :

   // Get the object used to communicate with the server.
   FtpWebRequest^ request = (FtpWebRequest^)WebRequest::Create("ftp://
xxx.xxx.com"); // Uri of ftp server
   request->Method = WebRequestMethods::Ftp::UploadFile;

   // FTP Proxy
   request->Proxy = gcnew WebProxy("ftpProxyHostname", 21);

   request->Credentials = gcnew
NetworkCredential("ftpServerUser","password");

   // Copy the contents of the file to the request stream.
   StreamReader^ sourceStream = gcnew StreamReader(exportDirectory +
zipName);
   array<Byte>^ fileContents = Encoding::UTF8->GetBytes(sourceStream-
>ReadToEnd());
   sourceStream->Close();
   request->ContentLength = fileContents->Length;

   Stream^ requestStream = request->GetRequestStream();
   requestStream->Write(fileContents, 0, fileContents->Length);
   requestStream->Close();

   FtpWebResponse^ response = (FtpWebResponse^)request->GetResponse();
kaloskagatos@gmail.com - 23 Jan 2008 15:10 GMT
But lol what !
Nicholas Paldino [.NET/C# MVP] - 23 Jan 2008 16:15 GMT
The documentation for the Proxy property on the FtpWebRequest class
states:

The FtpWebRequest class supports HTTP and ISA Firewall Client proxies.

   This leads me to believe that these are the only proxies it supports.

   Also, when using an HTTP proxy, you are limited to the methods that you
can use:

If the specified proxy is an HTTP proxy, only the DownloadFile,
ListDirectory, and ListDirectoryDetails commands are supported.

   I don't know if it supports an FTP proxy, but you might try and create a
URI with the FTP scheme, address, and port, and pass that to your WebProxy
instance and see if that works.

Signature

         - Nicholas Paldino [.NET/C# MVP]
         - mvp@spam.guard.caspershouse.com

> Hi,
> I have to upload files on a ftp server through a ftp proxy with
[quoted text clipped - 32 lines]
>
>    FtpWebResponse^ response = (FtpWebResponse^)request->GetResponse();
squall - 23 Jan 2008 16:59 GMT
Thanks for your response.
I tried your solution, but it doesn't work, I have this message :
'System.NotSupportedException', "ftp scheme proxies are not supported
by ServicePointManager". (I hope this is a good traduction, I'm french
and my Visual Studio is in French :) )
Do you know another class instead of FtpWebRequest, allowing me to do
a ftp request through a ftp proxy ?

On 23 jan, 17:16, "Nicholas Paldino [.NET/C# MVP]"
<m...@spam.guard.caspershouse.com> wrote:
>     The documentation for the Proxy property on the FtpWebRequest class
> states:
[quoted text clipped - 53 lines]
>
> >    FtpWebResponse^ response = (FtpWebResponse^)request->GetResponse();
Nicholas Paldino [.NET/C# MVP] - 23 Jan 2008 17:15 GMT
squall,

   I don't know of another class that will let you use an FTP proxy, at
least in the framework.  You will probably have to look for some third-party
provider in order to find something that will allow you to do this.

Signature

         - Nicholas Paldino [.NET/C# MVP]
         - mvp@spam.guard.caspershouse.com

> Thanks for your response.
> I tried your solution, but it doesn't work, I have this message :
[quoted text clipped - 66 lines]
>>
>> >    FtpWebResponse^ response = (FtpWebResponse^)request->GetResponse();
squall - 04 Feb 2008 17:30 GMT
Hi,
Finally I use a batch file (.bat) called in my code.
It's not a very good solution, but it work !
Thanks for your help

On 23 jan, 18:15, "Nicholas Paldino [.NET/C# MVP]"
<m...@spam.guard.caspershouse.com> wrote:
> squall,
>
[quoted text clipped - 80 lines]
>
> >> >    FtpWebResponse^ response = (FtpWebResponse^)request->GetResponse();

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.