2012-02-24 5 views
3

Хорошо, я думаю, что я готов каждый пост в StackOverflow относительно этого и до сих пор не повезло.Asp.Net MVC 3 App HandleError не работает

Я подтвердил в своем global.asax, что регистрируется фильтр HandleErrorAttribute. Я установил customErrors mode="On" в свой web.config. Я изменил Layout=null на Layout="~/Views/Shared/_Layout.cshtml" в моем файле Error.cshtml.

Затем я добавил throw Exception() в действие указателя контроллера счета и переместился на localhost:5050/Account/Index, но я завершаю стандартное содержимое стека ошибок YSOD.

Я даже попробовал следующее (хотя из моего понимания это не имеет значения):

  1. Добавить [HandleError] и [HandleError(View="Error")] в мой контроллер.
  2. Добавить defaultRedirect="Error" моим CustomErrors в web.config

Что еще я могу сделать? Есть ли способ рассказать, что происходит в фильтре HandleError, или узнать, генерируется ли вообще-то ошибка?

Благодарим за помощь.

P.S. Кстати, я использую VS2010, IE9 & Chrome

+2

Произошла ошибка в вашем _layout.cshtml? Это приведет к ошибке дважды, а затем по умолчанию будет установлен желтый желтый экран .Net. –

+0

Не то, что я могу сказать. Это тот же самый файл _Layout, который используется _ViewStart, и если я удаляю бросок из своего Action, представление отображается правильно ... ошибка не возникает. – RHarris

+0

Каков путь, указанный в элементе customErrors для файла ошибки? пожалуйста, напишите свой раздел «Угрозы» –

ответ

0

Хорошо, невежество не всегда блаженство ... иногда невежество просто расстраивает!

Оказывается, я редактировал файл web.config, расположенный в папке «Мои», вместо web.config для моего сайта, как я и думал.

Как только я добавил customErrors mode="On" в мой real web.config, все отлично работало.

Спасибо всем, кто пытался помочь.

0

Я не могу воспроизвести проблему. Вполне вероятно, что в ваших шаблонах _Layout.cshtml или Error.cshtml произошла ошибка. Или в некоторых случаях, что эти шаблоны могут зависеть.

Шаги:

  1. Создать новый ASP.NET MVC 3 приложение, используя шаблон по умолчанию
  2. Добавить <customErrors mode="On" /> в Web.config
  3. Добавить throw new Exception(); в теле LogOn действия на контроллере Account ,
  4. Запустить сайт и перейти к /account/logon
  5. Error.cshtml вид отображается правильно

YSOD вы получили, как правило, содержит StackTrace исключение, которое должно помочь изолировать проблему. Поэтому, чтобы попытаться изолировать проблему, попробуйте устранить любой потенциальный код в тех шаблонах, которые могут вызвать проблему. Попробуйте положить Layout = null в шаблон ошибки, чтобы устранить макет. И если есть ошибка (как я подозреваю) в любой ваш макет или ошибок шаблонов вы будете в конечном итоге с этим:

enter image description here

Если вы все еще не в состоянии изолировать проблему пытаются подписавшись на Application_Error событие в вашей Global.asax и посмотреть, сможете ли вы получить дополнительную информацию об исключении.

Смежные вопросы