Ответ 1
Какие ошибки отправляются, когда приложение не разбивается? Вы можете проверить тип исключения и не отправлять электронные письма в исключениях, которые не приводят к сбою приложения (например, перенаправление может вызывать исключение ThreadAbortException, которое я вручную фильтрую в коде):
protected void Application_Error(Object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
if (ex is ThreadAbortException)
return;
Logger.Error(LoggerType.Global, ex, "Exception");
Response.Redirect("unexpectederror.htm");
}
Вы можете добавить перенаправление на страницу с сообщением для пользователя о том, что произошла ошибка, и некоторые ссылки на соответствующие страницы на сайте. Это для того, чтобы "вернуть приложение обратно" - я надеюсь, что это то, что вы хотели.
Также вы можете посмотреть в журнал с помощью log4net, который также может регистрировать ошибки на сервере и отправлять сообщения об ошибках.