В моем проекте есть страница с ошибкой под названием oops.aspx. У нас есть следующий код в global.asax
:
protected void Application_Error(object sender, EventArgs e)
{
Server.Transfer("~/oops.aspx", true);
}
oops.aspx
может извлечь ошибку, сгенерировать красивое электронное письмо на сервер и предоставить пользователю сообщение об ошибке.
Использование Server.Transfer
сохраняет URL-адрес, информацию о форме и другую полезную информацию об устранении неполадок. В какой-то момент в oops.aspx при составлении электронного письма я беру Request.RawUrl и включаю его в электронное письмо. Это URL-адрес (с параметрами строки запроса) страницы, вызвавшей ошибку.
У нас также есть это в web.config:
<customErrors mode="On" defaultRedirect="oops.aspx"></customErrors>
Когда система перенаправляет из-за ошибки, основанной на этом, она перенаправляет на /oops.aspx?aspxerrorpath=/Clients/EditClient.aspx
(иногда с /, иногда с разделителями путей %2f). Информация о строке запроса и исключении теряется, поэтому электронная почта и сообщения, сгенерированные oops.aspx, немногочисленны и мало что говорят о том, что происходит.
В последнее время я получаю много ошибок второго рода. Ошибки возникают небольшими пачками, несколько за несколько минут, а потом ничего в течение нескольких часов. Они случаются по всему сайту (в том числе на WebResource.axd
и т.п.), что наводит меня на мысль, что это не конкретная ошибка на нашем сайте, а что-то на более низком уровне, например, проблема с сессионным сервером или что-то в этом роде.
Итак, со всем этим, мой актуальный вопрос:
У меня возникают ошибки на сайте, которые происходят таким образом, что их не отлавливает global.asax. Что может вызывать такие ошибки и как их устранить?