1

次のコードは、「書き込み専用」の ftp に接続しようとすると例外をスローします。

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftp://...);

request.Credentials = new NetworkCredential("username", "password");

request.Method = WebRequestMethods.Ftp.UploadFile;

Stream ftpstream = request.GetRequestStream();

フレームワークは次のように FTP コマンドを実装するため、GetRequestStream() は「許可が拒否されました」例外をスローします。 - open - user - pwd

助けてください?

4

1 に答える 1

0

このスレッドをチェックしてください。

また、舞台裏で PWD を回避するには、次のようにedtFtpNetのような .Net FTP クライアントを使用できます。

        var ftp = new FTPClient();
        ftp.BytesTransferred += new BytesTransferredHandler((o, e) => { Console.WriteLine("Remote Path: " + e.RemotePath + ", Remote File: " + e.RemoteFile + ", Bytes transfered: " + e.ByteCount); });
        ftp.TransferStartedEx += new TransferHandler((o, e) => { Console.WriteLine("FTP Transfer started!"); });
        ftp.TransferCompleteEx += new TransferHandler((o, e) => { Console.WriteLine("FTP Transfer completed!"); });

        try
        {
            ftp.RemoteHost = FTP_HOST;
            ftp.ConnectMode = FTPConnectMode.ACTIVE;
            ftp.Timeout = 120000;
            ftp.Connect();
            ftp.Login(FTP_USER, FTP_PWD);
            ftp.TransferType = FTPTransferType.BINARY;
            ftp.Put(GetBytes("file contents go here!"), Guid.NewGuid().ToString() + ".txt");
        }
        catch (Exception e)
        {
            Console.WriteLine("Error:" + e.ToString());
        }
        finally
        {
            ftp.Quit();
            Console.WriteLine("FTP Quit!");
        }
于 2012-11-22T11:05:07.533 に答える