【问题标题】:ASP.Net Core - Application Insights - Stack TraceASP.Net Core - Application Insights - 堆栈内存溢出
【发布时间】:2019-12-30 13:40:49
【问题描述】:

我正在设置一个非常简单的 ASP.Net Core (2.2) MVC Web 应用程序。我希望能够查看任何应用程序错误 (500s) 以及导致它们的原因,因此看起来 Application Insights 是可以查看的地方。

如果我进入 Application Insights/Failures(操作选项卡 - 请参见下面的屏幕截图),我可以看到所有 500 个错误的图表/计数。我可以单击“钻入”按钮并查看大量详细信息(事件时间、请求名称等),但似乎无法获得有关错误/行号的实际原因的任何详细信息。

基本上,我和这个人有完全相同的问题: Azure Monitor / Application Insights not showing stack trace for errors (我的截图看起来一模一样)。

当我深入了解异常详细信息时,我会得到如下信息:

想要得到这样的东西:

我确实看到了有关通过 Nuget 将 Application Insights 添加到我的解决方案并将其放入的信息

 services.AddApplicationInsightsTelemetry();

进入 Startup/ConfigureServices 方法。

我还看到您可以查看 Kudu 日志等...但我真的希望这一切都可以在 Application Insights 中轻松访问。

有什么建议吗?

【问题讨论】:

  • 您查看过“例外”吗?
  • 我确实查看了异常。不幸的是,我没有看到任何错误。

标签: asp.net-core azure-web-app-service azure-application-insights azure-webapps


【解决方案1】:

好的 - 我想我解决了自己的问题。原来我之前添加了 Serilog(有点忘记了),它在使用 AI 之前捕获了所有错误。当我从 Program.cs 和 Startup.cs 中删除 Serilog 配置代码时,应用程序异常开始显示在 Application Insights / Failures 中以及完整的调用堆栈中。感谢您的建议!

【讨论】:

【解决方案2】:

500 Internal server error 表明您正在查找堆栈跟踪以识别问题所在和位置。您的示例中未提供任何代码,但您需要用 try catch 包围您的代码,然后记录异常以获取堆栈跟踪,或者您可以使用 TelemetryClient,如下所示:

var telemetry = new TelemetryClient();
...
try
{ ...
}
catch (Exception ex)
{
   // Set up some properties:
   var properties = new Dictionary <string, string>
     {{"Game", currentGame.Name}};

   var measurements = new Dictionary <string, double>
     {{"Users", currentGame.Users.Count}};

   // Send the exception telemetry:
   telemetry.TrackException(ex, properties, measurements);
}

更多信息请访问Microsoft

【讨论】:

  • 感谢您的建议,但这真的是获取 App Insights 堆栈跟踪的唯一方法吗?它似乎是一种跟踪与交易相关的其他遥测项目(例如当前游戏和当前用户数)的方法。我知道,如果您关闭自定义错误,您可以在服务器上看到行号和异常描述 - 是否没有办法在 Application Insights 中查看它们而不向每个 try/catch 语句添加代码?
  • 文档中有这条语句似乎表明它是自动完成的:“从 Application Insights Web SDK 版本 2.6(beta3 及更高版本)开始,Application Insights 收集 MVC 5+ 控制器中抛出的未处理异常方法自动。如果您之前添加了自定义处理程序来跟踪此类异常(如以下示例中所述),您可以将其删除以防止重复跟踪异常。 (我正在使用 Application Insights Web v 2.12)
猜你喜欢
  • 2012-03-24
  • 2022-01-14
  • 2017-11-01
  • 1970-01-01
  • 2019-05-18
  • 2011-04-25
  • 2019-12-21
  • 1970-01-01
  • 2016-02-25
相关资源
最近更新 更多