Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core ASP.Net核心-应用程序洞察-堆栈跟踪_Asp.net Core_Azure Web App Service_Azure Application Insights_Azure Webapps - Fatal编程技术网

Asp.net core ASP.Net核心-应用程序洞察-堆栈跟踪

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个错误的图表/计数。我可以点击“钻取”按钮,查看大量详细信息(事件时间、请求名称等),但似乎无法获得有关错误/行号实际原因的任何详细信息 基本上,我和这个人有着完全相同的问题: (我的截图看起来一模一样) 当我深入到异常详细信息时,

我正在设置一个非常简单的ASP.Net核心(2.2)MVC Web应用程序。我希望能够看到任何应用程序错误(500个)以及导致这些错误的原因,因此似乎应用程序洞察是一个值得关注的地方

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

基本上,我和这个人有着完全相同的问题: (我的截图看起来一模一样)

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

我想得到这样的东西:

我确实看到了通过Nuget向我的解决方案中添加应用程序洞察并将

 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,以便使两者同时工作: