Application_Error не срабатывает на сервере - PullRequest
2 голосов
/ 03 апреля 2012

В моем файле Global.asax есть следующий код:

protected void Application_Error()
{
    var exception = Server.GetLastError();
    Response.Clear();
    Server.ClearError();

    //processing

    Response.RedirectPermanent("url processed"));
}

На localhost это работает нормально, делая что-то вроде этого:

Я захожу на «www.somesite.com/uk/en-GB», и поскольку этот маршрут не зарегистрирован, ошибка Application_Error «перехватывает» ошибку, обрабатывает ее и перенаправляет на правильный маршрут »www.somesite.com / EN-GB». (Как показано в коде выше на Global.asax)

Но на сервере я пытаюсь получить доступ к «www.somesite.com/uk/en-GB», и он не переходит к Application_Error, вместо этого показывает мне эту ошибку:

http://codinghorror.typepad.com/.a/6a0120a85dcdae970b0120a86d7d7d970b-pi

Кто-нибудь знает, как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 30 июля 2013

Я использую IIS 6 и обнаружил, что эту проблему легко решить, добавив ее в мой файл Web.Config в system.web:

    <customErrors mode="Off">
    </customErrors>

Это позволит выполнить код в Application_Error.

0 голосов
/ 03 апреля 2012

Вы не получили ошибку.Вы получили код ответа 404.Вам нужно будет обрабатывать этот сценарий по-другому.Application_Error только перехватывает необработанные исключения.

...