В прошлом мне повезло с регистрационными исключениями в веб-сервисе (при условии, что клиенту разрешено выходить в Интернет) с кодом, подобным приведенному ниже. Это для регистрации того, что вы еще не поймали. Если вы скомпилируете свое приложение в режиме деблокирования, но также включите файлы pdb, вы получите стекную строку с номерами строк.
Вы также должны зарегистрировать версию своей сборки, чтобы узнать, какая версия приложения дает вам ошибки.
public void RegisterHandlers()
{
Application.ThreadException += new ThreadExceptionEventHandler(ThreadExceptionFunction);
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledExceptionFunction);
}
private void UnhandledExceptionFunction(object sender, UnhandledExceptionEventArgs args)
{
Exception e = (Exception)args.ExceptionObject;
ExceptionLogger(e.StackTrace);
}
private void ThreadExceptionFunction(object sender, ThreadExceptionEventArgs args)
{
ExceptionLogger(args.Exception.StackTrace);
}
private void ExceptionLogger(string trace)
{
// log the message to a webservice
}
+1: Согласовано, зарегистрируйте активность пользователя, а также исключения - проверьте перезагрузку. –