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.