【问题标题】:Sentry Exception logging .NET CoreSentry 异常日志记录 .NET Core
【发布时间】:2021-09-02 05:53:01
【问题描述】:

我正在尝试在我的 .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-core sentry


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      解决方法是将依赖项直接添加到您的项目中:

      <PackageReference Include="System.Reflection.Metadata" Version="5.0.0" />
      

      【讨论】:

        猜你喜欢
        • 2018-02-28
        • 1970-01-01
        • 2011-10-23
        • 2011-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多