Я использую Application_Error в классе Global для обработки 404s.Обработка ошибок Global.cs с использованием System.Net.Mail
Когда поймано 404, я отправляю электронное письмо с целью его регистрации. Для этого я вызываю статический метод для записи ошибки.
ErrorHandler.WriteError(Exception ex)
В этом методе я создаю новый экземпляр моего EmailHandler для того, чтобы инициализировать System.Net.Mail класса. В моем EmailHandler объекта У меня есть закрытый член
private MailMessage m_mail = null;
В конструкторе EmailHandler класса я создаю новый MailMesage экземпляра для того, чтобы построить электронную почту.
public EmailHandler()
{
m_mail = new MailMessage();
}
На данный момент я получаю следующее сообщение об ошибке.
System.Security.Cryptography.CryptographicException
"The handle is invalid."
мне нужно отметить, что это происходит только тогда, когда запрос только конкретный файл (например, как www.mysite.com/random-incorrect-image.jpg).
Это не произойдет, когда я прошу страницы, как www.mysite.com/random-incorrect-page.aspx
Какова ваша версия IIS и как точно настроить 404 отлов? Через выполнение страницы с ошибкой? – jbl
@jbl Я просто запускаю это на сервере разработки asp.net vs2010 на данный момент. Я захватил 404, получив HttpException с последней ошибки сервера. Из HttpException вы можете получить код ошибки. – David
Но, поскольку 404 на статических файлах не обрабатываются через asp.net, где, и когда в вашем коде вы вызываете System.Web.HttpContext.Current.Server.GetLastError()? – jbl