加载 Ninject 组件 ICache 时出错

2023-11-24

我在 asp.net web api 项目中使用 ninject,并开始收到此间歇性 ninject 错误:

"加载 Ninject 组件 ICache 时出错 内核的组件容器中尚未注册此类组件。"

我在用着:

  • 忍者3.0.1.10
  • Ninject.MVC3 3.0.0.6
  • Ninject.Web.Common 3.0.0.7

它们都通过 NuGet 引入到我的项目中,我在 IocConfig.RegisterIoc 中加载我的模块,并且没有进行其他更改或调整。

这可能是不相关的,但问题是在我开始将 IKernel 注入我的一个构造函数的同时开始发生的。在阅读了有关“特殊解析器”的内容后,我没有为此设置绑定。

我在这里阅读了许多类似的问题:

Ninject +“加载 Ninject 组件 ICache 时出错”

MVC3 项目中的 Ninject 和 ChildKernel:“加载 Ninject 组件 ICache 时出错”

随机发生的 Ninject 异常:“加载 Ninject 组件 ICache 时出错”

尽管在每种情况下OP都有与我相同的错误,但解决方案并不合适-我没有创建子内核,也没有使用有缺陷的ninject版本。


找到了解决方案并认为我会分享。

问题是我正在使用 Ninject.MVC3,这似乎是 Web-API 的错误包。

相反,我需要使用 Ninject.Web.WebApi-RC 包,如这篇文章所述:

http://www.eyecatch.no/blog/2012/06/using-ninject-with-webapi-rc/

我执行的修复步骤是

  • 卸载 Ninject.MVC3 和 Ninject.Web.Common
  • 从 App_Start 文件夹中删除所有 ninject 文件。
  • 从 nuget 安装 Ninject.Web.Common 和 Ninject.Web.WebApi-RC
  • 在 NinjectWebCommon.RegisterServices() 中加载我的模块
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

加载 Ninject 组件 ICache 时出错 的相关文章

随机推荐