Программа выдает одно из этих полей, сообщая, что произошло необработанное исключение и приложение должно завершить работу. Единственная подсказка, которую я могу решить, - это запись в журнале событий:
Event Type: Error Event Source: .NET Runtime 2.0 Error Reporting Event Category: None Event ID: 5000 Date: 1/9/2009 Time: 8:47:44 AM User: N/A Computer: DADIEHL Description: EventType clr20r3, P1 crm.client.exe, P2 1.0.1.0, P3 49667f61, P4 mscorlib, P5 2.0.0.0, P6 471ebc5b, P7 c35, P8 59, P9 system.formatexception, P10 NIL.
Поэтому я добавил в program.cs следующий код:
try
{
Application.Run(new WindowContainer());
}
catch (Exception exc)
{
new DialogException(exc).ShowDialog();
}
Просто чтобы я мог поймать любое исключение, но пользователи по-прежнему получают то же сообщение, в котором говорится, что приложение должно быть закрыто. Я не могу воспроизвести это на своем компьютере и, следовательно, не могу использовать отладчик, чтобы сузить его. Кто-нибудь знает, как собрать дополнительную информацию или есть идеи, в чем проблема?





Вполне может быть, что исключение создается в другом потоке.
Два события, к которым вы можете добавить обработчики:
Добавьте обработчики, которые регистрируют исключение, и у вас будет намного больше информации.
Поведение необработанных исключений в потоках, не относящихся к пользовательскому интерфейсу, изменилось с .NET 1.1 на 2.0. Раньше их просто глотали, но теперь они останавливают приложение. Есть флаг app.config, который вы можете использовать для выбора старого поведения, если хотите, но это не рекомендуется, поскольку исключение в другом потоке вполне может означать, что ваше приложение теперь нестабильно. Я не могу вспомнить подробности настройки в данный момент, но я могу их найти, если хотите.
Если вы не хотите вносить изменения в код прямо сейчас, я бы, вероятно, использовал WinDbg с расширением SOS, чтобы вы могли, по крайней мере, получить трассировку стека - очень удобно для таких типов сбоев.
Прохождение в реальном мире с WinDbg
Вы можете попробовать обработать UnhandledExceptionEvent. Из MSDN:
Спасибо. Я сейчас борюсь с этим, и это первая полезная статья, которую я нашел после нескольких часов поиска в Google.