【问题标题】:MVC exception in Application Insight hides stack traceApplication Insight 中的 MVC 异常隐藏堆栈跟踪
【发布时间】:2017-06-29 04:04:20
【问题描述】:

我正在使用Application Insights (AI) 来尝试查看我是否可以记录和查看我的应用程序抛出的异常。

我已关注 this guide 设置了一个新的 MVC 项目,该项目链接到 Azure 中的新 AI 资源以进行测试。一切都很好。

在阅读了Diagnose failures & exceptions 的以下指南后,我创建了一个新的操作方法,用于触发NullReferenceException。我真的很喜欢如何将遥测数据发送给 AI。调试应用程序时,我可以在 Application Insights 搜索窗口中查看 Visual Studio 中引发的异常。它给了我以下堆栈跟踪:

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 门户中的异常,我得到了这个堆栈跟踪:

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)

您可以观察到堆栈跟踪中的最后一个调用丢失了。为什么?
在本地调试时引发的异常也出现在 Azure 门户中,但是这个不会缺少最后一次调用。看这个截图:

其他问题:Anonymously Hosted DynamicMethods Assembly 在堆栈跟踪中代表什么?为什么会出现?

【问题讨论】:

    标签: asp.net azure azure-application-insights


    【解决方案1】:

    当您发布时,您可能正在发布发布配置(默认),因此启用了代码优化。如果您愿意放弃它们,您可以切换到发布调试(这会影响性能)或在发布模式下禁用一些代码优化(更多 here)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-06
      • 2011-01-05
      • 2017-08-06
      • 2010-09-13
      • 1970-01-01
      相关资源
      最近更新 更多