при использовании WebClient невозможно подключиться к удаленному серверу - PullRequest
0 голосов
/ 15 апреля 2019

Я испробовал все варианты нижеприведенного.

 client.Credentials = new NetworkCredential(ftpInfo.ftpUserName, ftpInfo.ftpPassWord);
            client.BaseAddress = "ftp://99.999.9.99";
            var response = client.UploadFile("testFile.txt", "C:\\ftproot\\testfile\\012\\Drop\\testFile.txt");

Я знаю, что имя пользователя и пароль верны. Если я подключаюсь к серверу, используя filezilla из той же коробки, он работает.

Я пытался не иметь на нем ftp: // - я должен упустить что-то очень простое.

Вот ошибка: {"Невозможно подключиться к удаленному серверу"}

  • Response {System.Net.FtpWebResponse} System.Net.WebResponse {System.Net.FtpWebResponse}
  • ContentType '($ исключение) .Response.ContentType' вызвало исключение типа 'System.NotImplementedException' string {System.NotImplementedException}

UPDATE: Я не знаю, что не так с этим вопросом. Я дал столько информации, сколько у меня есть.

Вот текущий тест, использующий некоторые предложения в примечаниях.

        using (WebClient client = new WebClient())
        {
            client.Credentials = new NetworkCredential("password", "loginname");
            client.UploadFile("ftp://99.999.6.130/testFile.txt", "STOR", "c:\\testfile.txt");

        } 

Это просто говорит о том, что я не вошел в систему.

Ниже работает .... Я закрою вопрос, когда это позволит мне.

Finale Update - рабочее решение:

public static bool UploadFile(string url, string userName, string password, string file,
                              out string statusDescription)
    {
        try
        {
            var request = (FtpWebRequest)WebRequest.Create(url);
            request.Method = WebRequestMethods.Ftp.UploadFile;

            request.Credentials = new NetworkCredential(userName, password);

            // Copy the entire contents of the file to the request stream.
            var sourceStream = new StreamReader(file);
            var fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
            sourceStream.Close();
            request.ContentLength = fileContents.Length;
            var getResponse = request.GetResponse();

            Console.WriteLine($"{fileContents.Length} {getResponse} ");

1 Ответ

0 голосов
/ 15 апреля 2019

Ниже приведено рабочее решение.

public static bool UploadFile (строковый URL, строковое имя пользователя, строковый пароль, строковый файл, вне строки statusDescription) { пытаться { var request = (FtpWebRequest) WebRequest.Create (url); request.Method = WebRequestMethods.Ftp.UploadFile;

            request.Credentials = new NetworkCredential(userName, password);

            // Copy the entire contents of the file to the request stream.
            var sourceStream = new StreamReader(file);
            var fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
            sourceStream.Close();
            request.ContentLength = fileContents.Length;
            var getResponse = request.GetResponse();

            Console.WriteLine($"{fileContents.Length} {getResponse} ");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...