Я знаю, что я открываюсь для королевского пламени, даже спрашивая об этом, но я подумал, что увижу, есть ли у StackOverflow какие-либо решения для моей проблемы ...
У меня естьПриложение C #, которое не работает на клиентском сайте таким образом, что я не могу воспроизвести локально.К сожалению, мне очень трудно (невозможно) получить какую-либо информацию, которая вообще помогает изолировать источник проблемы.
У меня есть довольно обширная структура мониторинга ошибок, которая отслеживает необработанные исключения ввсе обычные места:
- Обработчик исключений Backstop в потоках, которыми я управляю
- Application.ThreadException для исключений WinForms
- AppDomain.CurrentDomain.UnhandledException
Который регистрирует подробную информацию в месте, где у меня есть к ней доступ.
В прошлом это было очень полезно для выявления проблем в рабочем коде, но не давало мне никакой информации о текущемсерия проблем.
Мое лучшее предположение состоит в том, что основная проблема - это один из типов грубых исключений (прерывание потока, нехватка памяти, переполнение стека, нарушение доступа и т. д.), которые перерастают в грубоеостановка, которая срывает процесс, прежде чем у меня есть шанс увидеть, что происходитвкл.
Могу ли я что-нибудь сделать, чтобы сделать снимок информации, когда мой процесс падает, что было бы полезно?В идеале я мог бы записать свой собственный формат журнала, но я был бы рад, если бы у меня был надежный способ гарантировать, что где-нибудь записан дамп сбоя.
Я надеялся, что смогу реализовать класснаследуется от CriticalFinalizerObject и заставляет его выдавать сообщение об ошибке последнего шанса при его удалении, но, похоже, это не срабатывает в сценарии StackOverflow, который я тестировал.
Я не могу использовать Windows Error Reporting и друзей из-за отсутствия сертификата для подписи кода.
Я не пытаюсь «восстановиться» от произвольных исключений, я просто пытаюсьчтобы записать, что пошло не так на пути вниз.
Есть идеи?