Application_Error имеет приоритет над Page_Error - PullRequest
0 голосов
/ 08 июля 2011

У меня есть метод Page_Error на странице, которая вызывает ошибку, и Application_Error в global.asax. Когда Page генерирует исключение, выполняемой подпрограммой является Application_Error. Но для этой конкретной страницы я хотел бы иметь другую обработку в Page_Error. Есть ли способ добиться этого?

Спасибо, Pawel

P.S. Возможно, это связано с тем, что генерируемое исключение вызвано загрузкой слишком большого файла (я проверял страницу загрузки файлов, как она обрабатывает файлы, размер которых больше, чем параметр web.config), а Page_Error еще не подключен?

1 Ответ

1 голос
/ 08 июля 2011

Из той же функции Page_Error вы можете проверить страницу и, если вы выглядите так, у вас другое поведение.

if( HttpContext.Current.Request.Path.EndsWith("YourFileName.axd", StringComparison.InvariantCultureIgnoreCase))
{
   // the diferent way
}
else
{

}

Следующий путь - изнутри страницы с другим поведением.

public override void ProcessRequest(HttpContext context)
{
    try
    {
        base.ProcessRequest(context);
    }
    catch (Exception x)
    {
        // here is the different, since you catch here is not move to the Page_Error
        // except is a code error... in any case you can do an extra error clear.
    }
}
...