将 Hangfire 与 Ninject 配置 InRequestScope 集成时出现问题

Problems integrating Hangfire with Ninject configuration InRequestScope

我正在将 Hangfire 集成到应用程序 (MVC5 4.6) 中,以便安排通常由管理员用户每天晚上触发的每日同步任务。

问题是,我似乎无法让 Hangfire 与我当前的 Ninject 设置配合使用。它不仅仅是 运行 一个函数本身,我需要安装 Hangfire.Ninject 包并在 Startup.cs.

中注册内核

问题是,我有包含依赖项 B 的依赖项 A,但依赖项 B 也包含依赖项 A(循环)。

因为这些是在 Ninject 内核设置中的 RequestScope 中声明的,所以这没有引起任何问题,但是这个特定的项目在整个应用程序中使用得太多了,尝试起来太痛苦了移除循环依赖,但由于某些原因 Hangfire 不接受它。

是否有任何替代方法可以消除周期性依赖?

我仍然没有完全避免这个问题,但是出于 Hangfire 的目的,我决定注册一个不同的 Ninject 内核,并且可以精确地定制我需要的东西。

大多数依赖项现在使用 .InBackgroundJobScope() 而不是 .InRequestScope() (来自 Hangfire Ninject nuget 包),但奇怪的是其他一些(幸运的是我不需要)仍然给我周期性依赖问题。