2011-02-09 3 views
4

Мне пришлось взять на себя проект MVC 3 от другого разработчика. Одна из первых вещей, которые он сделал, это остановить желтый экран смерти, чтобы все исключения записывались только в файл. Теперь вы получаете только общее сообщение о том, что произошла ошибка.Включить желтый экран смерти на MVC 3

Я хотел бы его снова включить (так как все время надо проверять через лог-файлы) - как это сделать.

Я проверил через web.config, но я не вижу, где это происходит.

Я пробовал делать customerrors = off, но это ничего не делало. Также удалил глобальный атрибут обработки ошибок, ничего не сделал.

При дальнейшем уточнении кажется, что в контроллере возникает исключение. Я получаю желтый экран смерти, но если он встречается в (бритве), я просто получаю стандартную общую ошибку.

Вы можете увидеть web.config here Вы можете увидеть global.asax here

+0

Я предполагаю, что он реализовал глобальный обработчик исключений. Если это то, что он сделал, все, что вам нужно сделать, это отцепить обработчик, и вы должны вернуть свой желтый экран. Вы можете прочитать об этом здесь: http://www.developer.com/net/asp/article.php/961301/Global-Exception-Handling-with-ASPNET.htm –

+0

Я проверил - глобальный обработчик исключений не зарегистрирован в global.asax –

ответ

1

В Global.asax вы можете удалить filters.Add(new HandleErrorAttribute()); из public static void RegisterGlobalFilters(GlobalFilterCollection filters).

Как указано в комментариях - проблема заключалась в том, что пользовательский базовый контроллер переопределяет метод OnException.

+0

Я пробовал, что не изменилось –

+0

Можете ли вы вставить свой web.config и Global.asax? –

+0

Я обновил свой вопрос, чтобы ссылаться на те 2 –

4

Обычно вы устанавливаете это в web.config в customErrors элементе под system.web. Просто попробуйте установить режим = Off:

<customErrors mode="Off" /> 
+0

Я пробовал, что не изменилось –

4

Этот вопрос немного старый, но, возможно, это поможет кому-то. В дополнение к установке <customerErrors mode="Off" />, также установить это под <system.webServer>: <httpErrors errorMode="Detailed" />

<system.webServer> 
    <httpErrors errorMode="Detailed"/> 
</system.webServer> 
+0

Спасибо, это действительно помогло мне –

0

Все это не работает для меня. Проверьте, не добавил ли кто-нибудь код для устранения ошибки в обработчике событий ошибки приложения.

protected void Application_Error(object sender, EventArgs e) 
    { 
     Exception lastException = Server.GetLastError().GetBaseException(); 

     Log.Error("Global.asax: WebApplication error", lastException); 

     //****Server.ClearError(); 
    } 
Смежные вопросы