Я играю с Application Insights (AI), чтобы попытаться посмотреть, могу ли я регистрировать и просматривать исключения, созданные моим приложением.Исключение MVC в Application Insight скрывает трассировку стека
Я следил за this guide, чтобы установить новый проект MVC, связанный с новым ресурсом AI в Azure для целей тестирования. Все работает очень хорошо.
После того, как я прочитал следующее руководство по адресу Diagnose failures & exceptions, я создал новый метод действий, в котором я запускаю NullReferenceException
. Мне очень нравится, как эти телеметрические данные отправляются в ИИ. При отладке приложения я могу просмотреть исключение, созданное в Visual Studio внутри окна поиска приложений. Это дает мне следующее StackTrace:
System.NullReferenceException: Object reference not set to an instance of an object.
at WebApplicationInsights.Controllers.HomeController.Error (HomeController.cs:33) (WebApplicationInsights, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null)
at lambda_method (Anonymously Hosted DynamicMethods Assembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null)
at System.Web.Mvc.ActionMethodDispatcher.Execute (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
.
.
at System.Web.HttpApplication.ExecuteStep (System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
Как вы можете видеть, возбуждается исключение из HomeController.
Теперь, после публикации в Azure, я снова собрал это исключение, посетив сайт live. Рассматривая исключение в Azure Portal я получаю эту StackTrace:
System.NullReferenceException:
at lambda_method (Anonymously Hosted DynamicMethods Assembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null)
at System.Web.Mvc.ActionMethodDispatcher.Execute (System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35)
.
.
at System.Web.HttpApplication.ExecuteStep (System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)
Вы можете наблюдать, что последний призыв в StackTrace отсутствует. Зачем?
Исключение, созданное при отладке локально, также присутствует на Azure Portal, однако этот не отсутствует, что последний звонок. Смотрите этот скриншот:
Дополнительный вопрос: что же Anonymously Hosted DynamicMethods Assembly
представляют в StackTrace и почему он там?