8

C#でftpWebRequestを使用しようとしています私のコードは

// Get the object used to communicate with the server.
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://192.168.20.10/file.txt");
            request.Method = WebRequestMethods.Ftp.UploadFile;

            // This example assumes the FTP site uses anonymous logon.
            request.Credentials = new NetworkCredential("dev\ftp", "devftp");

            // Copy the contents of the file to the request stream.
            StreamReader sourceStream = new StreamReader(@"\file.txt");
            byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
            sourceStream.Close();
            request.ContentLength = fileContents.Length;
            request.UsePassive = true;
            Stream requestStream = request.GetRequestStream();
            requestStream.Write(fileContents, 0, fileContents.Length);
            requestStream.Close();

            FtpWebResponse response = (FtpWebResponse)request.GetResponse();

            Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);

            response.Close();

request.GetRequestStream(); でエラーが発生します。エラーは次のとおりです。リモート サーバーがエラー 530 を返しました。ブラウザ ページにアクセスしようとすると、URL にftp://192.168.20.10/と入力すると、ブラウザ ページ で名前とパスワードを要求されます。同じ名前とパスワードを入力すると、ftp フォルダー内のすべてのファイルとフォルダーが表示されます。

4

5 に答える 5

18

行すべきではありません:

request.Credentials = new NetworkCredential("dev\ftp", "devftp");

なれ:

request.Credentials = new NetworkCredential("dev\\ftp", "devftp");

また:

request.Credentials = new NetworkCredential(@"dev\ftp", "devftp");

\f はフォーム フィード文字であるため、これが問題を引き起こしている可能性があると考えなければなりません。

于 2012-05-07T13:04:24.370 に答える
10

同じ問題に直面した、これが私の解決策です:

request.Credentials = new NetworkCredential(
    usernameVariable.Normalize(),passwordVariable.Normalize(),domainVariable.Normalize());

詳細はこちら

それが役に立てば幸い。

于 2013-06-26T04:20:27.360 に答える
7

.NET/C# 経由で FTP サーバーに接続すると、一部の文字が「有効」でないことがわかりました。文字と数字のみを含むようにログイン資格情報を設定した後 [a-Z0-9] 、ログインできました。

于 2012-11-13T10:33:59.697 に答える
0

$ サインインのユーザー名またはパスワードが問題を引き起こすことがあるため、ユーザー名またはパスワードから二重引用符を削除するだけです。毎回一重引用符を使用することをお勧めします。

于 2017-08-24T10:42:51.660 に答える