首页 > 解决方案 > 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) 时,确实会记录异常。一直坚持这一点,任何帮助将不胜感激。

标签: c#.net-coresentry

解决方案


这是在 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)中得到修复。


推荐阅读