Asp.net core ASP.Net核心-应用程序洞察-堆栈跟踪
我正在设置一个非常简单的ASP.Net核心(2.2)MVC Web应用程序。我希望能够看到任何应用程序错误(500个)以及导致这些错误的原因,因此似乎应用程序洞察是一个值得关注的地方 如果我进入应用程序洞察/失败(操作选项卡-见下面的屏幕截图),我能够看到所有500个错误的图表/计数。我可以点击“钻取”按钮,查看大量详细信息(事件时间、请求名称等),但似乎无法获得有关错误/行号实际原因的任何详细信息 基本上,我和这个人有着完全相同的问题: (我的截图看起来一模一样) 当我深入到异常详细信息时,会得到如下结果: 我想得到这样的东西: 我确实看到了通过Nuget向我的解决方案中添加应用程序洞察并将Asp.net core ASP.Net核心-应用程序洞察-堆栈跟踪,asp.net-core,azure-web-app-service,azure-application-insights,azure-webapps,Asp.net Core,Azure Web App Service,Azure Application Insights,Azure Webapps,我正在设置一个非常简单的ASP.Net核心(2.2)MVC Web应用程序。我希望能够看到任何应用程序错误(500个)以及导致这些错误的原因,因此似乎应用程序洞察是一个值得关注的地方 如果我进入应用程序洞察/失败(操作选项卡-见下面的屏幕截图),我能够看到所有500个错误的图表/计数。我可以点击“钻取”按钮,查看大量详细信息(事件时间、请求名称等),但似乎无法获得有关错误/行号实际原因的任何详细信息 基本上,我和这个人有着完全相同的问题: (我的截图看起来一模一样) 当我深入到异常详细信息时,
services.AddApplicationInsightsTelemetry();
进入启动/配置服务方法
我还看到你可以看看库杜日志等等。。。但我真的希望这些都能在应用程序洞察中轻松访问
有什么建议吗?一个500内部服务器错误表明您正在查找堆栈跟踪,以确定哪里出了问题,哪里出了问题。您的示例中未提供任何代码,但您需要使用try-catch来包围代码,然后记录异常以获取堆栈跟踪,或者您可以使用遥测客户端,如下所示:
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);
}
var telemetry=newtelemetryclient();
...
尝试
{ ...
}
捕获(例外情况除外)
{
//设置一些属性:
var属性=新字典
{{“游戏”,currentGame.Name};
var度量=新字典
{{“用户”,currentGame.Users.Count};
//发送异常遥测:
遥测.跟踪异常(例如,属性,测量);
}
更多信息请访问好的-我想我解决了自己的问题。事实证明,我之前添加了Serilog a(有点忘记了),它在使用AI之前捕获了所有错误。当我从Program.cs和Startup.cs中删除Serilog配置代码时,应用程序异常开始显示在application Insights/Failures中以及完整的调用堆栈中。谢谢你的建议 你看过“例外”吗?我看过例外。不幸的是,我没有看到任何错误。谢谢你的建议,但这真的是将堆栈跟踪引入应用程序洞察的唯一方法吗?这似乎是一种跟踪与事务相关的其他遥测项目(如当前游戏和当前用户计数)的方法。我知道,如果您关闭自定义错误,您可以在服务器上看到行号和异常描述-在Application Insights中,是否有一种方法可以在不向每个try/catch语句添加代码的情况下查看该行号和异常描述?文档中有一条语句似乎表明它已自动完成:“从Application Insights Web SDK 2.6版(beta3及更高版本)开始,Application Insights自动收集MVC 5+控制器方法中抛出的未处理异常。如果您以前添加了自定义处理程序来跟踪此类异常(如以下示例中所述),则可以将其删除以防止双重跟踪异常。“(我使用的是Application Insights Web v 2.12)您可以将Serlog接收器用于Application Insights,以便使两者同时工作: