Перенаправляется на Default.aspx вместо установленной ошибки 500 страниц на исключение - PullRequest
0 голосов
/ 04 октября 2018

В настройках сайта нашей установки DotNetNuke мы установили страницу по умолчанию для «500 Error Page», как вы можете видеть ниже.Site Settings Default Pages DotNetNuke

После установки этого мы ожидали, что мы будем перенаправлены при возникновении ошибки.Вместо этого мы по-прежнему перенаправлены на страницу «Default.aspx? Tabid = ...».

Почему не отображается правильная страница?
Что нам нужно изменить для нееработать?

(Мы используем v9.02.00 366, .NET Framework 4.6)


РЕДАКТИРОВАТЬ: Вот как я заставляю ошибку возникать с помощью пользовательского модуля.

public partial class TriggerError500 : PortalModuleBase
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if(UserId == -1)
        {
            throw new NotImplementedException();
        }
    }
}

Этот модуль был размещен на общедоступной странице для проверки страницы с ошибкой 500.

Ответы [ 4 ]

0 голосов
/ 05 октября 2018

Из-за способа, которым DNN обрабатывает загрузку модулей и страниц, код, который вы пишете, фактически не вызывает ошибку HTTP 500, так как сама страница загружается правильно.Ошибка загрузки модуля фиксируется платформой, и ошибка заносится в журналы администратора, но сама страница отображается.

Обычно вы получаете ошибку HTTP 500, когда вы не можете подключиться к базе данных или иным образом, в этих случаях DNN будет придерживаться правил.

Возможно, вы можете установить Response.StatusCode = 500;а затем завершите ответ и получите желаемое поведение, но я НЕ проверял это.

0 голосов
/ 04 октября 2018

Страница 500 ошибок, скорее всего, будет использоваться только тогда, когда исключение полностью не обработано.Например, если исключение обрабатывается разработчиком, на странице будет показано дружественное сообщение с частью исключения в URL-адресе.Это может объяснить URL-адрес, который вы видите.Это та же страница, что и у рассматриваемого модуля, но в другом формате.

Когда исключение не обрабатывается, посетителю обычно показывают печально известный «желтый экран смерти» (YSOD) с подробными сведениями об ошибке.В зависимости от настроек в файле web.config уровень детализации будет общим или подробным.Я считаю, что это вариант использования, предназначенный для страницы с ошибкой 500.Это когда вы должны увидеть это.

0 голосов
/ 04 октября 2018

Настройка, которая повлияет на обработку ошибок на уровне платформы, может быть переключена в разделе безопасности

Снимок экрана здесь

0 голосов
/ 04 октября 2018

Если память мне не изменяет, вы можете попробовать это в своем web.config:

<customErrors mode="On" defaultRedirect="500" />
...