В прошлом мне повезло с регистрацией исключений в веб-сервисе (если клиенту разрешено выходить в Интернет) с помощью кода, подобного приведенному ниже.Это для регистрации всего, что вы еще не поймали.Если вы компилируете свое приложение в режиме выпуска, но также включаете файлы 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
}