IIS 工作进程忙于使用 Hangfire

IIS Worker Process busy using Hangfire

我在我的 MVC 网络应用程序中使用 Hangfire。我是这样配置的:

GlobalConfiguration.Configuration
         .UseMongoStorage(mongoConnectionString, mongoDatabaseName);

app.UseHangfireServer();

当我 运行 我看到 IIS Worker Process 的应用程序经常占用近 40% CPU。

删除它会使应用程序正常工作。

怎么了?

Hangfire.Mongo 因为版本 0.2.2 使用新版本的 mongocsharpdriver 包迁移到异步 API 与 Mongo 交谈时。 Hangfire 仍然使用同步方法,看起来 "sync over async" wrapper.

中有错误

一位用户报告说在设置以下选项后一切正常。

CountersAggregateInterval = TimeSpan.FromMinutes(5);
JobExpirationCheckInterval = TimeSpan.FromHours(1);

但是,目前还没有修复程序,另一种选择是将 Hangfire.Mongo 软件包降级到以前的版本。请参阅相关GitHub issue.