ASP.Net 核心 - Application Insights - 堆栈跟踪
ASP.Net Core - Application Insights - Stack Trace
我正在设置一个非常简单的 ASP.Net 核心 (2.2) MVC Web 应用程序。我希望能够看到任何应用程序错误(500 秒)以及导致错误的原因,因此 Application Insights 似乎是值得关注的地方。
如果我进入 Application Insights/Failures(操作选项卡 - 请参见下面的屏幕截图),我能够看到所有 500 个错误中的 graph/count 个。我可以单击 "DRILL INTO" 按钮并查看大量详细信息(事件时间、请求名称等),但似乎无法获得有关错误/行号实际原因的任何详细信息。
基本上,我和这个人有完全相同的问题:
Azure Monitor / Application Insights not showing stack trace for errors
(我的截图看起来一模一样)。
当我深入了解异常详细信息时,我得到如下信息:
我想要得到这样的东西:
我确实看到了有关通过 Nuget 将 Application Insights 添加到我的解决方案并将
services.AddApplicationInsightsTelemetry();
进入Startup/ConfigureServices方法。
我还看到您可以查看 Kudu 日志等...但我真的希望所有这些都可以在 Application Insights 中轻松访问。
有什么建议吗?
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
找到更多信息
好的 - 我想我解决了我自己的问题。原来我之前添加了 Serilog(有点忘记了),它在进入 AI 之前捕获了所有错误。当我从 Program.cs 和 Startup.cs 中删除 Serilog 配置代码时,应用程序异常开始与完整的调用堆栈一起显示在 Application Insights/Failures 中。感谢您的建议!
我正在设置一个非常简单的 ASP.Net 核心 (2.2) MVC Web 应用程序。我希望能够看到任何应用程序错误(500 秒)以及导致错误的原因,因此 Application Insights 似乎是值得关注的地方。
如果我进入 Application Insights/Failures(操作选项卡 - 请参见下面的屏幕截图),我能够看到所有 500 个错误中的 graph/count 个。我可以单击 "DRILL INTO" 按钮并查看大量详细信息(事件时间、请求名称等),但似乎无法获得有关错误/行号实际原因的任何详细信息。
基本上,我和这个人有完全相同的问题: Azure Monitor / Application Insights not showing stack trace for errors (我的截图看起来一模一样)。
当我深入了解异常详细信息时,我得到如下信息:
我想要得到这样的东西:
我确实看到了有关通过 Nuget 将 Application Insights 添加到我的解决方案并将
services.AddApplicationInsightsTelemetry();
进入Startup/ConfigureServices方法。
我还看到您可以查看 Kudu 日志等...但我真的希望所有这些都可以在 Application Insights 中轻松访问。
有什么建议吗?
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
找到更多信息好的 - 我想我解决了我自己的问题。原来我之前添加了 Serilog(有点忘记了),它在进入 AI 之前捕获了所有错误。当我从 Program.cs 和 Startup.cs 中删除 Serilog 配置代码时,应用程序异常开始与完整的调用堆栈一起显示在 Application Insights/Failures 中。感谢您的建议!