Вопрос по c# – использование ftpWebRequest с ошибкой: удаленный сервер вернул ошибку 530, но не вошел в систему

7

Я пытаюсь использовать ftpWebRequest в C # мой код

<code>// 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();
</code>

и я получаю сообщение об ошибке в request.GetRequestStream (); ошибка: удаленный сервер вернул ошибку 530, но не авторизовался если я пытаюсь зайти на страницу браузера и в URL я пишуftp://192.168.20.10/ страница бровей спрашивает у меня имя и пароль, я ввожу одно и то же имя и пароль и вижу все файлы и папки в папке ftp.

Ваш Ответ

4   ответа
6

что при подключении через .NET / C # к FTP-серверу некоторые символы недопустимы. После установки учетных данных только для букв и цифр [a-Z0-9] он работал для входа в систему.

Это сработало! Спасибо
0

потому что иногда $ sign в имени пользователя или пароле вызывает проблемы. Хорошо использовать одинарные кавычки каждый раз.

Не размещайте один и тот же ответ на несколько вопросов. Вероятно, лучше пометить их как дубликаты друг друга.
@Jaap спасибо за ваше руководство.
8

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

Подробности можно найтиВот

Надеюсь, поможет.

17

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

быть:

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

или же:

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

Я должен верить, что это может вызывать ваши проблемы, потому что \ f является символом подачи формы.

Похожие вопросы