Лучший способ - перехватить последнюю ошибку сервера и исключения домена приложения.
Все это можно сделать в файле Global.asax.cs.
Проверьте следующие шаги:
1- В Global.asax.cs перехватите последнюю ошибку и зарегистрируйте ее.
protected void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
Server.ClearError();
log.Error("Application Error caught in Global ", exception);
}
2 - добавить обработчик события UnhandledException в AppDomain, его следует добавить в Application_Start:
protected void Application_Start(object sender, EventArgs e)
{
//....
AppDomain.CurrentDomain.UnhandledException
+= new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
}
3 - А вот реализация CurrentDomain_UnhandledException:
void CurrentDomain_UnhandledException(object sender,
UnhandledExceptionEventArgs e)
{
if (e != null)
log.Error("Domain Unhandled Exception: ", e.ExceptionObject as Exception);
}
Удачного кодирования:)