gpt4 book ai didi

c# - 在 ServiceStack 应用程序中使用时,Application Insights 不跟踪异常

转载 作者:太空狗 更新时间:2023-10-29 23:36:17 25 4
gpt4 key购买 nike

我目前遇到 App Insights 未显示 .Net Core 中的异常的问题。我也在使用 ServiceStackCore 构建我的 API。

这是目前在 Azure 门户中 Application Insights 下的样子: Screenshot of Azure portal

可以看到,响应码都显示400、403、500,但是没有异常(exception):

我找到了一条获取异常的迂回路线:

var telemetry = new TelemetryClient();
...
try
{ ...
}
catch (Exception ex)
{
telemetry.TrackException(ex);
}
  • 我想知道 ServiceStack 是否有任何内置的异常处理,这些异常处理可能会屏蔽本应由应用洞察捕获的异常?

  • 是否有任何开箱即用的配置可以在 App Insights 中完成以显示这些异常而无需添加 try-catch block ?

最佳答案

ServiceStack 让您 register handlers to handle Exceptions :

public override void Configure(Container container)
{
//Handle Exceptions occurring in Services:

this.ServiceExceptionHandlers.Add((httpReq, request, exception) => {
//log your exceptions here
...
return null; //continue with default Error Handling

//or return your own custom response
//return DtoUtils.CreateErrorResponse(request, exception);
});

//Handle Unhandled Exceptions occurring outside of Services
//E.g. Exceptions during Request binding or in filters:
this.UncaughtExceptionHandlers.Add((req, res, operationName, ex) => {
res.Write($"Error: {ex.GetType().Name}: {ex.Message}");
res.EndRequest(skipHeaders: true);
});
}

ServiceExceptionHandlers 因服务异常而被触发,而 UncaughtExceptionHandlers 因非服务请求或未知服务请求而被触发。

关于c# - 在 ServiceStack 应用程序中使用时,Application Insights 不跟踪异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48659792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com