我目前遇到的问题是App Insights没有在.Net Core中显示异常。我也在使用ServiceStackCore来构建我的API。
这是Application Insights下Azure门户中的目前情况: Screenshot of Azure portal
如您所见,响应代码全部显示为400,403,500。但是没有例外:
我找到了一条获得例外的回合路线:
var telemetry = new TelemetryClient();
...
try
{ ...
}
catch (Exception ex)
{
telemetry.TrackException(ex);
}
我想知道ServiceStack是否有任何内置的异常处理可能会使应用程序洞察应该捕获的异常静音?
如果有任何开箱即用的配置可以在App Insights中完成,以显示这些异常而无需添加try-catch块?
答案 0 :(得分:2)
ServiceStack允许您register handlers to handle Exceptions:
ServiceExceptionHandlers
针对服务异常触发 UncaughtExceptionHandlers
,而针对非服务请求或未知服务请求触发{{1}}。
答案 1 :(得分:0)
感谢您的回答并增加更多的明确性:
我一直在覆盖HandleUncaughtException方法以及AppHost中的ResolveResponseException方法,以便
清理我不想向客户端公开的异常(作为内部服务器错误)
Yes
此外,我还向两种方法添加了TrackException()遥测,这将导致异常被跟踪到App Insights。
我认为ServiceStack在某种程度上抑制了在App Insights中出现的异常,而这个实现解决了这个问题。我认为这可能发生的原因是因为我还有另一个没有ServiceStack(IdentityServer)运行的API,它可以正确跟踪异常。