Загрузка файла на FTP
От: serber  
Дата: 08.10.10 08:17
Оценка:
Добрый день, столкнулся с неведомой мне проблемой.

Есть некий фтп сервер, куда нужно загрузить файл. С помощью ФТП клиента файл загружается нормально. А вот программно совсем не хочет загружаться.

Вот код:

public static void ftpfile(string ftpfilepath, string inputfilepath)
        {
            var ftpfullpath = "ftp://127.0.0.1/" + ftpfilepath;
            var ftp = (FtpWebRequest)WebRequest.Create(ftpfullpath);
            ftp.Credentials = new NetworkCredential("user", "password");
            ftp.KeepAlive = false;
            ftp.UseBinary = true;
            ftp.UsePassive = false;
            ftp.Method = WebRequestMethods.Ftp.AppendFile;
            var fs = File.OpenRead(inputfilepath);
            var buffer = new byte[fs.Length];
            fs.Read(buffer, 0, buffer.Length);
            fs.Close();
            var ftpstream = ftp.GetRequestStream();
            ftpstream.Write(buffer, 0, buffer.Length);
            ftpstream.Close();  
        }


Если ставить
ftp.UsePassive = false;

возникает исключение: Время ожидания истекло.

Если ставить
ftp.UsePassive = true;
возникает исключение: В ответ на команду PASV сервер вернул не тот адрес, с которым было установлено соединение FTP.

В обоих случаях исключение возникает на строке
var ftpstream = ftp.GetRequestStream();



Проблема именно с конкретным ФТП сервером, разрешения на запись для пользователя имеются. На другие ФТП этот код загружает файлы корректно и без ошибок.

Может кто сталкивался с данной проблемой?
ftp .net
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.