ProKiLL
@ProKiLL
Системный администратор

Где искать потерю данных?

Здравствуйте Уважаемые!
Просьба найти мистику в ("3 соснах") коде.
Есть WCF служба с методом Updates(<ВерсияТекущегоФайла>, <ИмяФайла.расширение>, <КлючьКФайлу>)
public Updates Updates(long version, string fileName, string key_service)
        {
            Updates update = new Updates();
            try
            {
                if (key_service == "КлючьКФайлу")
                {
                    byte[] buffer;  //Временная переменная
                    List<Files> listDll = Hepler.List(path_dll, new List<string> { "*.dll", "*.exe" });
                    List<Files> selectFile = listDll.FindAll(delegate (Files teach) { return teach.name.StartsWith(fileName); });
                    if (selectFile.Count > 0)
                    {
                        long ver = long.Parse(selectFile[0].version.Replace(".", ""));
                        if (ver > version)
                        {
                            //На сервере есть обновления
                            FileStream fs = new FileStream(selectFile[0].fullName, FileMode.Open);
                            buffer = new byte[fs.Length];
                            int len = (int)fs.Length;
                            fs.Read(buffer, 0, len);
                            fs.Close();
                            update.file = buffer;
                            update.node = "Доступна новая версия";
                        }
                    }
                    else
                    {
                        update.node = "Неизвестный файл";
                    }
                }
            }
            catch (Exception ex)
            {
                log.Error(ex.ToString());
            }
            return update;
        }


Вопрос в следующем:
Если при вызове Updates(<ВерсияТекущегоФайла>, "ИмяФайла.расширение", "КлючьКФайлу") указать версию текущего файла 201709131 то метод отработает и отдаст нам обновленный файл, но если указать версию файла 2017091318 (дополнительная 8 на конце) то метод не отработает и вернет класс с null.
Скриншоты
6e8c8a45cf6a49fcbdd83b654b4a350c.png82329bba70c747d198a558e9b7288234.png

В чем может быть ошибка? Как я понял ему не нравиться размер версии (длина). Логи службы чистые ошибок при работе не возникает.
Изначально <ВерсияТекущегоФайла> была int перевел в long ситуация не поменялась.
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
ProKiLL
@ProKiLL Автор вопроса
Системный администратор
"Пустая голова - ногам покоя не дает"
Вся ошибка заключалась в версии файла на сервере
строка if (ver > version) т.е. мы отправляем версию 2017091318 а на сервере лежит версия 201709181
Вывод: исправил версию файла на сервере на 2017091801 и проблема решилась.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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