在 Hangfire 失败的任务上显示异常

Show exception on Hangfire Failed tasks

我正在测试 Hangfire 以便在我的应用程序中使用它
任务 运行 符合预期
现在我使用 try catch 阻止任务失败,异常未显示在仪表板中的失败任务中
然后我使用 log4net 它工作正常将异常记录到文本文件但在 hangfire 仪表板中仍然不可见问题是什么

框架 4.7 - WebForms - log4net:2.0.13.0,hangfire.core:1.1.1.0 安装者:安装包 Hangfire_net40
代码

1- Startup.cs

public void Configuration(IAppBuilder app)
    {
         
        app.UseHangfire(config =>
        {
            config.UseSqlServerStorage("Hangfire_Blog");
            config.UseServer();
        });

    }

2- web.Config

3- Global.ascx

 private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
    private BackgroundJobServer _backgroundJobServer;
    protected void Application_Start(object sender, EventArgs e)
    {
        
        
        log4net.Config.XmlConfigurator.Configure();
        JobStorage.Current = new SqlServerStorage("Hangfire_Blog");


        using (var connection = JobStorage.Current.GetConnection())
        {
            foreach (var recurringJob in connection.GetRecurringJobs())
            {
                RecurringJob.RemoveIfExists(recurringJob.Id);
            }
        }

        //create an instance of BackgroundJobServer
        _backgroundJobServer = new BackgroundJobServer();

        //add your recurring job
        RecurringJob.AddOrUpdate(() => Code(), "*/2 * * * *");

        // RecurringJob. AddOrUpdate(() => Actualizacoes(), Cron.m();
    }
    [AutomaticRetry(Attempts = 10)]
    public void Code()
    {
        try
        {
            string s = "";
            int n = int.Parse(s);
        }
        catch (Exception ex)
        {
            log.Error(ex.Message);
        }
    }

对于面临同样问题的任何人@madreflection 评论是答案的一部分
首先 Hangfire 不会在 try catch 块中捕获异常,要么删除 try catch
或者在捕获日志中将错误抛出以被 hangfire
捕获

但最重要

 [AutomaticRetry(Attempts = 10)]

那个标签意味着 hangfire 不会认为任务失败,直到它尝试执行 10 次并且所有 10 次都失败
希望有人觉得它有用


谢谢