【问题标题】:StackExchange.Exceptional not logging exceptions from BlazorStackExchange.Exceptional 不记录来自 Blazor 的异常
【发布时间】:2021-08-06 06:12:59
【问题描述】:

我有一个使用 .NET 5.0 运行的 Blazor 服务器端应用程序,我正在尝试从 ElmahCore 切换到 Exceptional
但我无法让它记录 Blazor 异常。 当我在 MVC 控制器中抛出异常时,它会被记录,但如果我在例如OnAfterRenderAsync 没有任何记录。

我需要进行哪些配置才能使用 Exceptional 记录 Blazor 异常?

同样在 ElmahCore 中,我可以使用 ElmahExtensions.RiseError(exception); 记录我在代码中捕获/处理但仍想显示在错误日志中的异常。 Exceptional 有没有类似的东西?

我使用 HERE 的默认配置配置了 Exceptional。

【问题讨论】:

标签: c# asp.net-core exception blazor-server-side stackexchange.exceptional


【解决方案1】:

我先下载了包:

Install-Package StackExchange.Exceptional.AspNetCore -Version 2.2.17

接下来,将 Exceptional 标签配置添加到 appsettings.json 文件中,该文件包含用于在数据库中存储错误的连接字符串:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "Exceptional": {
    "Store": {
      "ApplicationName": "Test",
      "Type": "SQL",
      "ConnectionString": "Your Db"
    }
  }
}

在 ConfigureServices 方法中注册 AddExceptional 服务:

  services.AddExceptional(Configuration.GetSection("Exceptional"), settings =>
    {
        settings.UseExceptionalPageOnThrow = HostingEnvironment.IsDevelopment();
    });

接下来添加ConfigureServices后,我们将在Configure方法中添加“UseExceptional”中间件。

添加 app.UseExceptional(); Configure 方法中处理错误的中间件:

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {

            app.UseExceptional();
            .....
}

然后我写了一个抛出异常throw new NotImplementedException();

然后就可以看到记录了:

根据你提供的文章,应该可以了。你是哪方面出了问题?

【讨论】:

  • 原来的问题是 Blazor 的异常没有被捕获
猜你喜欢
  • 2017-08-25
  • 1970-01-01
  • 1970-01-01
  • 2010-10-03
  • 2017-10-12
  • 2015-05-03
  • 1970-01-01
  • 2021-04-29
  • 2013-01-31
相关资源
最近更新 更多