@Homer_Simpson

Почему не работает загрузка файла на FTP сервер с помощью C#?

Пытаюсь средствами C# загрузить файл на FTP сервер, но при загрузке возникает ошибка "Базовое соединение закрыто: Сервер нарушил протокол." Поиск в гугле навел на такую же ошибку, где человеку помог следющий код, но у меня все равно возникает эта ошибка.
Код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Net;

namespace SteamSSFN
{
    class Program
    {
        static void Main()
        {
            ftpfile("/file.txt", "C:\\file.txt");  
        }

        public static void ftpfile(string ftpfilepath, string inputfilepath)
        {
            string ftphost = "ip:port";
            string ftpfullpath = "ftp://" + ftphost + ftpfilepath;
            FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath);
            ftp.Credentials = new NetworkCredential("user", "pass");
            ftp.KeepAlive = true;
            ftp.UseBinary = true;
            ftp.Proxy = null;
            ftp.Method = WebRequestMethods.Ftp.UploadFile;
            FileStream fs = File.OpenRead(inputfilepath);
            byte[] buffer = new byte[fs.Length];
            fs.Read(buffer, 0, buffer.Length);
            fs.Close();
            Stream ftpstream = ftp.GetRequestStream();
            ftpstream.Write(buffer, 0, buffer.Length);
            ftpstream.Close();
        }

    }
}


В файрволле показывается, что запрос идет через TCP. Как можно явно задать протокол?
  • Вопрос задан
  • 3504 просмотра
Пригласить эксперта
Ответы на вопрос 1
@DancingOnWater
Брр, вы сначала снифером посмотрите что за пакеты идут.

И да, лучше использовать webclient
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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