ASP.NET / Web.config: customErrors перенаправляет только на 404

У меня есть такой сценарий:

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

если пользователь делает что-то, что вызывает ошибку, он должен увидеть Stacktrace и реальную страницу ошибок.

Это моя текущая сеть.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.web>
        <customErrors>
          <error statusCode="404" redirect="/errors/404.htm" />
        </customErrors>
        <compilation debug="true" strict="false" explicit="true" />
    </system.web>
</configuration>

С этой конфигурацией 404 будет перенаправлен на правильный сайт, но HTTP 500 будет показан как следующий:

ошибка сервера в ' / ' Application

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

Details: чтобы включить сведения об этом конкретном сообщении об ошибке для просмотра на удаленные машины, пожалуйста, создайте тег в " web [.config " файл конфигурации, расположенный в корневом каталоге текущего веб-приложения. Этот тег должен иметь свой атрибут "mode", установленный в"Off".

[...]

но в этом случае я хочу показать stacktrace.

Как я могу это сделать?

Примечание: мы на Linux с Mono конструкция Lighttpd.

2 ответов


в веб.записи конфигурации, условие not found (404) отправит пользователя в PageNotFound.аспн

Use mode= "Off", и все (локальные и удаленные пользователи) увидят сведения об ошибке.

<customErrors mode="Off">
     <error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" />
</customErrors>

Use mode= "RemoteOnly" и Локальные пользователи увидят подробные страницы ошибок с трассировкой стека и деталями компиляции. Удаленным пользователям с GeneralError.aspx-страницы

<customErrors mode="RemoteOnly" defaultRedirect="~/errorPages/GeneralError.aspx">
     <error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" />
</customErrors>

Ray Van Halens ответ правильный, но это не было реальной проблемой.

причина не показывать stacktrace-это ошибка в самом mono. Нет другого способа написать собственную страницу ошибок, на которой отображается stacktrace.