Не удается получить подробную информацию об ошибке на веб-сайте ASP.NET MVC - PullRequest
16 голосов
/ 30 января 2012

Я только что развернул приложение ASP.NET MVC 3 на нашем промежуточном сервере. Всякий раз, когда возникает ошибка, я не могу получить подробную информацию об ошибке, то есть «желтый экран смерти». Вместо этого я просто получаю простое «Извините, произошла ошибка при обработке вашего запроса». сообщение.

Мой Web.config включает , включая customErrors off, т.е.:

<system.web>
  <compilation debug="true" targetFramework="4.0">
    <assemblies>
      ...
    </assemblies>
  </compilation>
  <customErrors mode="off"/>
</system.web>

В этом случае я точно знаю, что является основной ошибкой. (Я забыл установить разрешения для хранимой процедуры.) Но я действительно хочу (повторно) включить обработку ошибок, чтобы я мог быстро находить эти ошибки. Конечно, я уберу это, как только мы начнем работать по соображениям безопасности.

Какие есть другие параметры, которые могут перекрывать обработку ошибок ASP.NET по умолчанию?

Ответы [ 4 ]

32 голосов
/ 30 января 2012
<customErrors mode="Off"/>

«Выкл.» должно быть написано с заглавной буквы правильно.

Из " Редактирование файлов конфигурации ASP.NET ":

Учитывать Чувствительность

Поскольку теги должны быть правильно сформированными XML, теги, подтэги и атрибуты чувствительны к регистру. Имена тегов и атрибут имена имеют верблюжий знак, что означает, что первый символ тега имя строчное и первая буква любого последующего сцепленного слово или слова прописные. В большинстве случаев значения строковых атрибутов Pascal-case, что означает, что первый символ является заглавным, а первая буква любого последующего связанного слова или слов верхний регистр. Исключения являются истинными и ложными, которые всегда в нижнем регистре.

Помните, дети, вы узнаете что-то новое каждый день. Даже если то, что ты изучаешь, - хромое.

7 голосов
/ 30 января 2012

В вашем файле Global.asax.cs может быть глобальный фильтр HandleErrorAttribute. Удалить эту строку.

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }
2 голосов
/ 30 января 2012

Лучшим долгосрочным решением может быть добавление Elmah к вашему проекту, это добавляет подробные записи в ваш веб-проект.

Включая:

  • Регистрация почти всех необработанных исключений.
  • Веб-страница для удаленного просмотра всего журнала перекодированных исключений.
  • Aвеб-страница для удаленного просмотра полной информации о любом зарегистрированном исключении, включая цветные следы стека.
  • Во многих случаях вы можете просмотреть исходный желтый экран смерти, созданный ASP.NET для данного исключения, даже сРежим customErrors отключен.
  • Уведомление по электронной почте о каждой ошибке в момент ее возникновения.
  • RSS-канал о последних 15 ошибках из журнала.
0 голосов
/ 30 января 2012

проверьте, использует ли ваш сервер тот же файл конфигурации для вашего веб-сайта (если файл конфигурации, развернутый в dir веб-сайта, совпадает)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...