Сбой при запуске .NET WinForms
-
11-09-2019 - |
Вопрос
Похоже, что на некоторых клиентах наш WinForms аварийно завершает работу при запуске.Под некоторыми я имею в виду очень-очень редкие.В одной ситуации мы обнаружили, что системный шрифт Arial был поврежден и вызвал сбой в InitializeComponents при запуске.Обнаружить это было очень сложно, единственной подсказкой была запись в журнале событий о том, что модуль System.Drawing вызвал сбой.
Теперь у меня снова такая ситуация, но на этот раз неисправный модуль «неизвестен», и мне интересно, как люди обрабатывают/отлаживают такие сбои.Я попытался обернуть обработчик исключений вокруг InitializeComponents, но он ничего не перехватил.
Любые советы, как подойти к этим сбоям?
Решение
Вы всегда ловите исключение в main()
и вставьте исключение в журнал ошибок.Только тогда вы сможете отладить и узнать все за вас.
Для инструмента регистрации ошибок вы можете попробовать log4net, или просто запишите в простой плоский файл.
Другие советы
Я использовал подход, подробно описанный в http://www.wintellect.com/CS/blogs/jclark/archive/2005/03/30/simple-main.aspx с хорошим успехом.
(Однако вам придется игнорировать около 3000 строк спам-комментариев.)