У нас есть большое деловое приложение, которое работает поверх WPF и Entity Framework. Проблема в том, что у нас есть проблема в течение последних 2 недель и не может определить ее источник.Как получить дополнительную информацию из Exception (случайный случайный C# WPF)?
Исключение в настоящее время в ловушке DispatcherUnhandledException и информация, которую мы получаем от исключения (по электронной почте) заключается в следующем:
mscorlib: Value cannot be null.
at System.Threading.Monitor.ReliableEnter(Object obj, Boolean& lockTaken)
at System.Threading.Monitor.Enter(Object obj, Boolean& lockTaken)
at System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
at System.Data.EntityClient.EntityConnection.Dispose(Boolean disposing)
at System.ComponentModel.Component.Finalize()
Исключение бросают «случайно» 4 или 5 раз в день и только от ОДНОГО из 20 + пользователей, которых мы имеем. Мы не можем решить проблему !. трассировка стека не дает много информации, и мы не можем воспроизвести проблему.
Я предполагаю, что это происходит в потоке, но я не могу определить поток, вызывающий исключение, так как у нас много фоновых рабочих и асинхронных вещей!
Итак, как я могу получить дополнительную информацию об исключении?
Edit:
Существует нет никаких InnerExceptions.
Кроме того, исключение составляет интервалы в несколько минут, а затем часы, например: 11:41, 11:46, 11:51, тогда он работает нормально до 18:03, 18:07, 18:11, тогда никакие исключения не выбрасываются. Моменты, в которых происходят эти минутные интервалы, также случайны, не связаны с какой-либо нагрузкой на серверы или сеть.
Есть ли 'InnerException', который не доставляется по электронной почте? –
нет, все исключенные исключения отправляются с их Внутренними Исключениями, если они есть. –
У вас, вероятно, есть исключение где-то в вашем коде, который скрыт некоторым обратным вызовом в рамках.Попробуйте добавить предложения catch, которые регистрируют исключения, а затем бросают; их обратно в точки соприкосновения с WPF (например, в установках VM, в реализации команд). Кроме того, если возможно, отправьте этому клиенту соответствующие PDB и попробуйте отладить удаленно (с помощью Visual Studio Remote Debugger). –