0

プロジェクトに問題があります。プロキシを使用してFTPからファイルを削除したい。

私のコードは次のとおりです。

                FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + FtpServerName + FtpFilePath);
                request.Method = WebRequestMethods.Ftp.DeleteFile;


                request.Proxy = new WebProxy(ProxyAddress);
                request.Proxy.Credentials = new NetworkCredential(ProxyUserName,     ProxyPassword);

                request.Credentials = new NetworkCredential(FTPUserName, FTPPassword);
                FtpWebResponse response = (FtpWebResponse)request.GetResponse();

この場合、次のようなエラーが発生します:httpプロキシを使用している場合、要求されたFTPコマンドはサポートされていません

誰か助けてくれませんか

前もって感謝します

4

2 に答える 2

1

http://blogs.msdn.com/b/adarshk/archive/2004/09/13/229069.aspxから:

FTPWebRequestでのHttpプロキシの使用に関する注意:Httpプロキシは限られた数のftpメソッドでのみサポートされます(主にファイルのダウンロードのみ)。したがって、マシンにプロキシのIE設定がある場合は、以下のようにプロキシを使用しないようにFtpWebRequestを明示的に設定する必要があります。

request.Proxy = GlobalProxySelection.GetEmptyWebProxy();

プロキシを介して他のFTPアクションを実行する場合は、それをサポートする別のFTPコンポーネントを見つける必要があります。

于 2012-09-25T13:45:56.183 に答える
0

それ以外のrequest.Proxy = GlobalProxySelection.GetEmptyWebProxy();

試すrequest.Proxy = WebRequest.DefaultWebProxy;

私のためにうまくいったデモコードに従います:

var request = (FtpWebRequest)WebRequest.Create(new Uri("ftp://99.999.99.99/TextFile1.txt"));
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential("ftp_user", "ftp_pass"); // it's FTP credentials, not proxy
request.Proxy = WebRequest.DefaultWebProxy;

var sourceStream = new StreamReader("TextFile1.txt");
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();

var response = (FtpWebResponse)request.GetResponse();
Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);
response.Close();
于 2014-12-01T15:36:53.940 に答える