Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: Винда "исправляет" файл обновления ?  (Прочитано 25652 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« : 17-12-2009 05:10 » 

Произвожу обновление экзешника по следующей схеме:

0) для корректной работы системы сервер и клиент должны иметь экзешник абсолютно одинаковый, поэтому:
1) когда сервер запущен и
2) клиент подключается к серверу, клиент спрашивает версию.
3) если сервер велит обновиться, клиент скачивает с сервера по своему протоколу экзешник, сохраняет его на диск под другим именем, запускает этот новый с определённым ключом. Новый копирует себя, замещая старый клиент, и запускает обновлённый экзешник.

Всё прекрасно работает на XP , но вот один клиент (человек) пишет, что использует Windows 2003 Server Enterprise R2 SP2 Rus , и там происходит следующая непонятность: экзешник обновляется и запускается (он точно обновился, так как версию можно посмотреть из самой программы). Однако, после закрытия программы оказывается, что экзешник старый! Запускаем - всё повторяется.
Что может такое быть ?
Записан

HandKot
Молодой специалист

ru
Offline Offline

« Ответ #1 : 17-12-2009 05:27 » 

может exe случайно запихнули в %SystemRoot%\System32\Dllcache и он попал под защиту "Windows File Protection"
и винда восстанавливает его по мере возможности
в любом случае, надо посмотреть логи системы, там точно должно что-нибудь быть написано
Записан

I Have Nine Lives You Have One Only
THINK!
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 17-12-2009 05:29 » 

нет, файл лежит по адресу "C:\имя_программы\файл.exe" . Это самая обычная папка.
А где эти логи смотреть ? У меня самого этой винды нет
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 17-12-2009 06:25 » 

Леш, а ты удаляешь старый файл перед копированием?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 17-12-2009 06:32 » 

удаляю и заменяю
Код:
::DeleteFile(oldEXE);
::CopyFile(oldEXE,newEXE,0);

« Последнее редактирование: 17-12-2009 06:35 от Алексей1153++ » Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 17-12-2009 06:43 » 

По шагам проверял? Удаляет?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 17-12-2009 06:49 » 

Ром, я не проверял, (и сейчас проверить не смогу). Но, в любом случае, ЗАМЕНЯЕТСЯ. По крайней мере под XP. Под 2003 судя по всему, тоже заменяется сначала (см первый пост - версию можно посмотреть из программы), а вот потом возвращается старый вариант.
А где же логи то посмотреть можно ?
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 17-12-2009 06:53 » 

Какие такие логи?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 17-12-2009 06:54 » 

в любом случае, надо посмотреть логи системы, там точно должно что-нибудь быть написано
Записан

zubr
Гость
« Ответ #9 : 17-12-2009 07:17 » 

Алексей1153++, попроси своего клиента (человека) проверить атрибуты файла-клиента, если ReadOnly, то DeleteFile вернет ERROR_ACCESS_DENIED.
Цитата
If an application attempts to delete a file that does not exist, the DeleteFile function fails. If the file is a read-only file, the function fails with ERROR_ACCESS_DENIED. To delete a read-only file, you must first remove the read-only attribute.
MSDN.
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #10 : 17-12-2009 07:19 » 

лоин системы это  EventViewer
Пуск - Администрирование - События
Записан

I Have Nine Lives You Have One Only
THINK!
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #11 : 17-12-2009 07:26 » 

zubr, файл же заменяется )) Значит атрибута нет. Да и не могло его стоять, поскольку экзешник частенько обновляется - давно бы заметили.

Но спросил - не поставлен флаг.

Про логи - щас скажу ему
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #12 : 17-12-2009 07:38 » 

Ничего в логах инетресного не оказалось. Заменили файл вручную - файл остался на месте и теперь причину так и не узнали, выходит. По крайней мере до новой версии программы
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 17-12-2009 07:49 » 

Леш, возможно, что пользователь, под которым запускалась программа, имеет какие-то ограничения на работу с данной директорией и файлом. Стоит дать ему полный контроль на директорию.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #14 : 17-12-2009 07:53 » 

Может не там заменяли? Виста тоже создаёт кучу отражений. Я как-то такое тоже наблюдал. Но уже ща точно не помню.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #15 : 17-12-2009 07:57 » 

Права у пользователя полные. Про отражения ничего не знаю Улыбаюсь
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #16 : 17-12-2009 08:01 » 

Когда виста ещё только появилась, я помню, тоже долго меняли как-то файл, а оказалось - не на том месте. Она с него копию сделала и запускала её.

Правда кажется прога инсталлилась под одним пользователем, а запускалась под другим. Может тоже нечто такое?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #17 : 17-12-2009 08:04 » 

Дык, вроде он там переустанавливал недавно винду 2003  и программу сразу и поставил. То есть других пользователей не было. Спрошу попозже, я уже из аси выпал )
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #18 : 17-12-2009 08:05 » 

2003 это серверная XP Улыбаюсь, там механизмы "защиты" такие же.
По хорошему, надо поднять виртуалку и попробовать,
О! Идея!  Подготовить образ с действующей системы и втянуть его в виртуалку.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #19 : 17-12-2009 11:28 » 

А, всё, Лёш, забудь что я говорил. Я чёт "увидел", что это 2008 сервер, а он оказывается 2003.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #20 : 18-12-2009 06:43 » 

Цитата
Всё прекрасно работает на XP , но вот один клиент (человек) пишет, что использует Windows 2003 Server Enterprise R2 SP2 Rus , и там происходит следующая непонятность: экзешник обновляется и запускается (он точно обновился, так как версию можно посмотреть из самой программы). Однако, после закрытия программы оказывается, что экзешник старый! Запускаем - всё повторяется.
Что может такое быть ?

Лёш, скорее всего, у вас файл кем-то остаётся заюзан. раньше я принудительно отстреливал всех клиентов перед обновлением, иначе заменить файл мне сам сервер не давал. а потом админы как-то так настроили сервак, что сколько бы народу не запускало экзешник, через шару или через RDP, я его спокойно заменяю. и у того человека, который прогу перезапустит - запуститься именно новый файл, а если кто оставался висеть - он увидит копию, которая сделала для него винда при запуске.

з.ы. это я к тому, что попробуйте после замены закрыть нах все текущие сессии, и поглядеть, что у народа после этого запуститься.
« Последнее редактирование: 18-12-2009 06:44 от x77 » Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #21 : 18-12-2009 06:59 » 

Ну, дело в том, что заменяется то КЛИЕНТ Улыбаюсь Никто в сети его не запускает, только на этой машине. А два экземпляра на машине запустить невозможно - блокирую мутексом сии поползновения

----
В общем, пока что всё разрешилось ручной заменой, а больше никто вроде не жаловался. Так что, ждём, появятся ли ещё жалобы - а там можно начать думать, что делать )
« Последнее редактирование: 18-12-2009 07:01 от Алексей1153++ » Записан

x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #22 : 18-12-2009 07:05 » 

Алексей1153++,  я понимаю, просто попробуй после автообновления если файл кажется старым - перегрузить хотя бы сессию. а лучше - систему. тогда будет очевидно, что проблема в сервачных кэшированиях.
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #23 : 18-12-2009 07:14 » 

Попробовали повторить глюк - не повторяется )) Осталось загадкой
Записан

x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #24 : 18-12-2009 07:48 » 

Алексей1153++, чуть выше HandKot очень правильно сказал: если это срабатывает WFP - то копия файла будет в %systemroot%\system32\dllcache. проверьте, если оно там есть - то винда усегда его будет восстанавливать, хотя и даст заменить.
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #25 : 18-12-2009 08:08 » 

Это проверяли - там его нет
Записан

x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #26 : 18-12-2009 08:17 » 

Алексей1153++,  а как насчёт  VSS? вот етим - товарищ не балуется?
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #27 : 18-12-2009 08:20 » 

спросил, жду ответа )
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #28 : 18-12-2009 08:34 » 

отрицает товарисч использование этого VSS, и утюг его не испугал )
Записан

x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #29 : 18-12-2009 08:54 » 

Алексей1153++, что значит отрицает? он эту функцию вручную отключил? насколько я помню, на 2003 и на висте она работает по дефолту.
Записан

Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines