Hangfire后台作业超时

时间:2018-12-04 10:27:21

标签: c# asp.net-core .net-core asp.net-core-webapi hangfire

我已经将hangfire用于许多项目,并且没有任何问题。我尝试在新的Web API项目(.net核心2.1)上使用它,但是在尝试执行BackgroundJob时遇到Timeout异常。

Startup.cs(在ConfigureServices方法内部)

services.AddHangfire(x => x.UseSqlServerStorage(Configuration.GetConnectionString("DefaultConnection")));

Startup.cs(在Configure方法内部)

app.UseHangfireServer();
app.UseHangfireDashboard();

所有的hangfire表都是在我启动应用程序时创建的(应该如此)。但是当我试图像这样使用BackgroundJob时:

BackgroundJob.Enqueue(() => emailService.Send(emailDto));

抛出异常:

异常消息:后台作业创建失败。有关详细信息,请参见内部异常。

内部异常消息:超时已过期。在操作完成之前已经过了超时时间,或者服务器没有响应。

我检查了emailService.Send()方法,它可以正常工作。 (我执行该操作时没有使用hangfire进行检查。)

重要更新::我发现这是与在TransactionScope中执行BackgroundJob有关的问题。当我将这种逻辑移出transactionope之外时,一切工作正常。现在我很好奇,有什么方法可以使其在特定的transactionscope中起作用?

0 个答案:

没有答案