Ошибки приложения WPF и ремонт .Net Framework

Background: У меня есть приложение на базе .Net 3.5 WPF "Prism", работающее на ПК с Windows XP и Windows PosReady 2009. Приложение работает на ПК, которые выключаются каждую ночь (с помощью C# вызова "shutdown.exe") и загружаются утром (с помощью Wake-on-LAN). Приложение является сенсорным (используются сенсорные экраны ELO), нет ни мышей, ни клавиатур, и у пользователей нет доступа к Windows.

Проблема: Спорадически возникают проблемы, когда происходит одно из двух: либо приложение не загружается корректно и отображается пустая белая форма, либо оно перестает реагировать на прикосновения. Из наших журналов (log4net) мы видим, что мы все еще обрабатываем события прикосновения и регистрируем их в обоих случаях. Часто это происходит при переключении представлений, и мы также видим в журналах, что Prism RegionManager удаляет и добавляет представления соответствующим образом.

Troubleshooting: Приложение работает примерно на ~100 ПК с использованием образов, созданных с помощью Clonezilla, и это происходит лишь спорадически. Поскольку это происходит не на всех ПК и в Event Viewer не регистрируются исключения или что-либо, указывающее на проблему, мы прибегли к исправлениям на уровне ПК и ОС. В частности, мы попробовали перезапустить приложение и ПК с периодическим кратковременным успехом - это означает, что иногда приложение будет работать правильно после таких перезапусков, но только в течение нескольких часов. Мы также предположили, что приложение было каким-то образом повреждено, и удалили и переустановили его, но безуспешно.

Единственное, что, похоже, решает проблему, это восстановление фреймворка .Net с помощью предоставленного пакета .Net 3.5 SP1 Installer.

Conclusion: Поскольку это, похоже, решает проблему, когда ничего другого не помогает, похоже, что мы каким-то образом повреждаем GAC's framework dll - либо через код, либо через процедуры загрузки/выключения ПК.

Questions: Это приводит к ряду вопросов:

  • Есть идеи о том, как мы можем определить источник проблемы?
  • Есть идеи о том, что мы можем сделать, чтобы предотвратить эту проблему?
  • Есть идеи о том, что может лежать в основе проблемы?

Спасибо за любую помощь.

11
задан svick 11 February 2012 в 18:31
поделиться