2009-07-17 6 views
2

Application_Error не работает со встроенным режимом, но работает с Class Mode. Я бы передал запрос на страницу с ошибкой, используя как Интегрированный режим, так и Режим Класса. Может ли это быть сделано, или мне нужно использовать HTTP-модуль для поддержки обоих режимов?Global.asax Application_Error не работает со встроенным режимом

protected void Application_Error(object sender, EventArgs e) 
{ 
    if (Context != null && Context.IsCustomErrorEnabled) 
    { 
     Server.Transfer("~/Error.aspx", false); 
    } 
} 
+0

http://weblogs.asp.net/reganschroder/archive/2008/07/25/iis7-integrated-mode-request-is-not-available-in-this-context-exception-in-application-start .aspx – user81740

+0

Обзор жизненного цикла приложения ASP.NET для IIS 7.0 http://msdn.microsoft.com/en-us/library/bb470252.aspx – user81740

+0

Вы можете написать HTTP-модуль, который будет обрабатывать ошибки. Аналогично этому: http://msmvps.com/blogs/vcsjones/archive/2008/12/26/managing-iis-pipeline-mode-for-backward-compatibility.aspx – user81740

ответ

0

Вы должны использовать HttpContext.Current (HttpContext - это статический класс). Итак, где вы сейчас используете контекст, измените его на HttpContext.Current

0

Вы можете попробовать изменить код с Server.Transfer по номеру Server.TransferRequest. См. Мой ответ на другой вопрос here.

+0

Я не верю, что событие Application_Error даже срабатывает в интегрированном режиме ... Я не прав? –