Самый простой способ - использовать отладчик Visual Studio на компьютере, на котором выполняется программа. Если на этом компьютере нет Visual Studio, рассмотрите возможность удаления отладки. См. , как начать отладку на удаленном компьютере.
Если по соображениям безопасности удаленная отладка исключена, рассмотрите возможность регистрации исключения, особенно трассировки стека. Если вы знаете, где это происходит, просто окружите его символом try-catch
try
{
// Here are the statements that cause your ArgumentNullException
}
catch (ArgumentNullException exc)
{
// log the exception
}
. Если ваша программа не имеет возможности ведения журнала, подумайте о добавлении чего-то вроде NLOG. Другой вариант - добавить его в текстовый файл.
void WriteExceptionToTextFile(Exception exc, string fileName)
{
using (var writer = File.AppendText(fileName))
{
writer.WriteLine("Exception {0}", exc.GetType());
write.WriteLine("Stack trace" + exc.StackTrace);
... // etc
}
}
Если вы не знаете, где возникает исключение, вы не можете попытаться его поймать. В этом случае подумайте о том, чтобы перехватить необработанное исключение и зарегистрировать его:
См.: перехват необработанного исключения
В ваших формах программа находится в файле program.cs, который содержит основной :
public static void Main()
{
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += OnUnhandledException;
...
}
static void OnUnhandledException(object sender, UnhandledExceptionEventArgs args)
{
Exception undhandledException = (Exception) args.ExceptionObject;
// TODO log the unhandled exception
}