Взгляд пропускает 500 исключений
Glimpse отлично работает, когда сайт в значительной степени работает нормально, но когда есть 500, он исчезает.
По сравнению с:
Вы можете увидеть это здесь (пока вы входите в систему как пользователь glimpseuser
с паролем = password
).
http://telemetrymvc.azurewebsites.net/Home/ThrowException
К сожалению, 500 действительно очень важны.
Есть ли способ для Glimpse остаться в живых в случае исключения?
1 ответ
Возможно, но вам придется обрабатывать ошибку 500 через MVC, а не полагаться на страницу статической ошибки. Glimpse просто внедряет себя в ответный HTML во время выполнения, и он не может сделать это со статической страницей. Тем не менее, наличие 500 ошибок, обработанных MVC, означает, что вы можете оказаться в цикле перенаправления, если есть ошибка всего приложения: приложения перенаправляют на обработчик 500, который затем также вызывает исключение, вызывающее перенаправление на обработчик 500, и так далее.,
Если вы хотите рискнуть, вам нужно добавить httpErrors
объявление в ваш Web.config:
<system.webServer>
...
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="500" />
<error statusCode="500" responseMode="ExecuteURL" path="/Error/ServerError" />
</httpErrors>
Тогда вам просто нужно ErrorController
с ServerError
действие, если вы используете маршрут по умолчанию.
Однако Glimpse на самом деле предназначен только для разработки, и даже тогда желтые экраны смерти более уместны, чем что-то с включенным Glimpse. Для производства вы должны использовать какое-то альтернативное приложение для регистрации ошибок, такое как Elmah или один из множества облачных вариантов.