Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Прочитать xml-файлы на ftp / 12 сообщений из 12, страница 1 из 1
11.05.2021, 14:44
    #40069355
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать xml-файлы на ftp
Всем привет, мне необходимо прочитать множество xml-файлов на удаленном ftp сервере. Использую для этого
FluentFTP v. 34.0.0
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
public async Task ReadSalesSumAsync()
        {
            try
            {
                var credentials = new NetworkCredential("user", "pwrd", "domain");
                using FtpClient client = new FtpClient(ftpAddress,21, credentials);             
                await client.ConnectAsync();
                await client.SetWorkingDirectoryAsync("/folder");
                var fileList = await client.GetListingAsync();
				
                foreach (var item in fileList)
                {
                    if (item.Type== FtpFileSystemObjectType.File && item.Name.Substring(item.Name.Length - 3, 3).ToUpper().Equals("XML"))
                    {
                        await parseXml(item.FullName, client);
                    }
                }
                await client.DisconnectAsync();
            }
            catch (Exception ex)
            {            
                throw;
            }

            //Парсинг XML-файла
            async Task parseXml(string filePath, FtpClient client)
            {
                using (var stream = await client.OpenReadAsync(filePath))
                {
                    using (var reader= new StreamReader(stream))
                    {
                        var content =await reader.ReadToEndAsync();
                    }
                }
            }
        }


После успешного чтения 2-х файлов получаю ошибку
Failed to get the EPSV port from: 497
Причем если запускать метод ReadSalesSumAsync в режиме построчной отладки (проходить каждую строку кода через F10), то ошибка не появляется.
Код для использования брал из официального репозитория repo .
В чем может быть проблема? Спасибо
...
Рейтинг: 0 / 0
12.05.2021, 09:30
    #40069531
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать xml-файлы на ftp
vb_sub
получаю ошибку
нужно угадать строку, на которой она возникает?
vb_sub
брал из официального репозитория
и куда потерял stream.Close(); ?
...
Рейтинг: 0 / 0
12.05.2021, 10:53
    #40069555
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать xml-файлы на ftp
1) Ошибка возникает на строке
Код: c#
1.
using (var stream = await client.OpenReadAsync(filePath))


То есть внутри FluentFtp, так что найти концы скорее всего не получится.
2)stream.Close() потерял по привычке, потому что страндартные stream из BCL обычно автоматически закрываются при Dispose и достаточно просто блока Using. Спасибо попробую прнудительно закрывать его.
...
Рейтинг: 0 / 0
12.05.2021, 10:55
    #40069556
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать xml-файлы на ftp
vb_sub,

ну это же не гарантированно, а зависит от реализации типа
...
Рейтинг: 0 / 0
12.05.2021, 11:28
    #40069563
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать xml-файлы на ftp
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
using (var stream = await client.OpenReadAsync(filePath))
       {
         try
         {                    
         }
         finally  
         {
            stream.Close();
         }
      }


Не помогло.
Единственное что помогает-это после using со стримом вызывать метод client.GetReply(), но где-то в мануалах писали, уже не могу найти где точно, что этот метод используйте на свой страх и риск, потому что он может попасть в бесконечный цикл.
...
Рейтинг: 0 / 0
12.05.2021, 18:05
    #40069740
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать xml-файлы на ftp
сделай просто небольшую задержку
...
Рейтинг: 0 / 0
12.05.2021, 20:07
    #40069764
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать xml-файлы на ftp
Roman Mejtes
сделай просто небольшую задержку

Хороший совет. Насколько она должна быть "небольшая", чтобы гарантированно не падать? :))
...
Рейтинг: 0 / 0
12.05.2021, 20:10
    #40069765
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать xml-файлы на ftp
vb_sub
То есть внутри FluentFtp, так что найти концы скорее всего не получится.

А это зачем: https://github.com/robinrodricks/FluentFTP
...
Рейтинг: 0 / 0
12.05.2021, 21:42
    #40069782
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать xml-файлы на ftp
fkthat,

ну допустим на сервере есть некое ограничение на количество подключений или количества загружаемых файлов, и если оно превышено, то пациент "бросает трубку".
это конечно, только в моей воспаленной фантазии, как понять это число, это вопрос. Как вариант, используй Polly, если загрузка падает, просто повторять до необходимого результата
...
Рейтинг: 0 / 0
12.05.2021, 22:26
    #40069793
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать xml-файлы на ftp
Roman Mejtes
fkthat,

ну допустим на сервере есть некое ограничение на количество подключений или количества загружаемых файлов, и если оно превышено, то пациент "бросает трубку".
это конечно, только в моей воспаленной фантазии, как понять это число, это вопрос. Как вариант, используй Polly, если загрузка падает, просто повторять до необходимого результата

Polly, он-то по-моему заточен исключительно под HttpClient, т.к. внутри работает на "delegate handlers" - врят ли он в случае с FTP поможет.
...
Рейтинг: 0 / 0
12.05.2021, 22:29
    #40069796
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать xml-файлы на ftp
Я бы попробовал на время сделать все на синхронном коде и проверить будет ли ошибка в этом случае.
...
Рейтинг: 0 / 0
12.05.2021, 23:07
    #40069799
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать xml-файлы на ftp
Polly рассчитан для любых задач, хендлер можно на любое исключение сделать
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Прочитать xml-файлы на ftp / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]