Asp не соблюдает набор defaultRedirect в web.config, View Engines ломаются при поиске других страниц ошибок - PullRequest
0 голосов
/ 07 ноября 2018

В нашем приложении есть страница ошибок, которая должна фиксировать все ошибки в приложении.

<customErrors mode="On" defaultRedirect="~/Content/Error.html" />

Эта страница ошибки по существу выплевывает "Произошла непредвиденная ошибка, обратитесь в службу поддержки со следующим кодом: $ HASH" . Где $ HASH (который задается как значение cookie) представляет собой идентификатор, указывающий на захваченное исключение в журнале.

Тем не менее, когда мы ищем хеш и данные для некоторых ошибок нашего приложения, мы обнаруживаем следующее.

Exception information:
   Exception type: InvalidOperationException
   Exception message: The view 'Error' or its master was not found or no view 
engine supports the searched locations. The following locations were searched:
SomeLocation\Error.spark
Shared\Error.spark
SomeLocation\Error.shade
Shared\Error.shade
~/Views/SomeLocation/Error.aspx
~/Views/SomeLocation/Error.ascx
~/Views/Shared/Error.aspx
~/Views/Shared/Error.ascx
~/Views/SomeLocation/Error.cshtml
~/Views/SomeLocation/Error.vbhtml
~/Views/Shared/Error.cshtml
~/Views/Shared/Error.vbhtml
  at System.Web.Mvc.ViewResult.FindView(ControllerContext context)
  at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
  at <<More Internals>>

Это означает, что ASP пытается использовать любые движки представления для отображения нашей первоначальной ошибки, Бросить свою собственную ошибку, Удалить нашу первоначальную ошибку.

I Ожидается исключение нашего исходного приложения для регистрации. Не то, что показано выше. Я не ожидаю, что Asp будет искать где-либо, кроме ~/Content/Error.html, сообщения об ошибках.

Быстрые исправления, которые я пробовал

  • Установите customErrors defaultRedirect в местоположение, в которое также будут смотреть ViewEngines. Результат: все ломается
  • Создайте представление и контроллер в местоположении, которое могут использовать механизмы представления, и перенаправьте в местоположение, установленное в web.config. Результат: хэш ошибки теряется, поскольку данные cookie не задаются.

1 Ответ

0 голосов
/ 07 ноября 2018

Попробуйте добавить

<Add Type="Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule, Microsoft.AI.Web">
  <EnableMvcAndWebApiExceptionAutoTracking>false</EnableMvcAndWebApiExceptionAutoTracking>
</Add>

до ApplicationInsights.config

Источник: https://github.com/Microsoft/ApplicationInsights-dotnet-server/issues/921

Источник: AiHandleErrorAttribute Vs. Встроенный автоматически добавленный фильтр действий, предоставляемый Application Insights

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