c# - Sentry 异常日志记录 .NET Core
问题描述
我正在尝试在我的 .NET Core 应用程序中记录所有意外异常。我已经在我的异常处理中间件中设置了哨兵。当我尝试使用 SentrySDK.CapetureMessage(e.Message) 记录异常消息时,它可以工作并显示在哨兵仪表板中。但是,当我尝试使用 SentrySDK.CapetureException(e) 记录实际异常时,它不会记录任何内容并引发错误:
fail: Sentry.ISentryClient[0]
An error occurred when capturing the event System.IO.FileLoadException: Could not load file or assembly 'System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=xx'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)
File name: 'System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=xx'
奇怪的是,当我在中间件异常处理程序之外调用 SentrySDK.CapetureException(e) 时,确实会记录异常。一直坚持这一点,任何帮助将不胜感激。
解决方案
这是在 Sentry 的 .NET SDK 版本 3.3.4(很可能是 3.4.0)之后一段时间引入的报告回归,它仅影响面向 .NET Core 3.0 或 3.1 的项目。
这是一个跟踪错误的 GitHub 问题:https ://github.com/getsentry/sentry-dotnet/issues/1050
目前,最好的解决方法是降级到 Sentry SDK 的 3.3.4 版本。我们会尽快解决问题。带来不便敬请谅解!
更新:这现在应该在最新版本(v3.6.0)中得到修复。
推荐阅读
- jbpm - 在 JBPM 与 Drools 的集成中没有触发子业务规则
- databricks - 授予用户/组对 Databricks 工作区中所有笔记本的读取权限
- python - 使用谷歌分析跟踪 REST API 调用/
- javascript - Highcharts JS-为两个系列的工具提示添加第三个变量
- angular - 从 chrome 检查隐藏存储在网站上的视频文件
- python - 如何在多个条目小部件上绑定鼠标操作
- php - php中的递增函数出错
- r - R如何将不同类型的变量打印到一个txt文件中
- google-apps-script - Google App Script - 列出所有包含的工作表
- php - 如何检查是否定义了索引?