Здравствуйте Уважаемые!
Просьба найти мистику в ("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.
В чем может быть ошибка? Как я понял ему не нравиться размер версии (длина). Логи службы чистые ошибок при работе не возникает.
Изначально <ВерсияТекущегоФайла> была int перевел в long ситуация не поменялась.