加载Ninject组件ICache时出错

时间:2013-02-07 17:23:19

标签: asp.net-web-api ninject

我在asp.net web api项目中使用ninject并且已经开始接收这个间歇性的ninject错误:

加载Ninject组件ICache时出错 没有在内核的组件容器中注册此类组件。

我正在使用:

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

他们都被带入我的项目NuGet我在IocConfig.RegisterIoc中加载我的模块并且没有做任何其他更改或调整。

它可能不相关但问题开始发生在我开始将IKernel注入我的一个构造函数的同时。关于“特殊解析器”,我没有为此设置约束。

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

Ninject + "Error loading Ninject component ICache"

Ninject and ChildKernel in MVC3 project: "Error loading Ninject component ICache"

Randomly-Occurring Ninject Exception: "Error loading Ninject component ICache"

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

1 个答案:

答案 0 :(得分:5)

找到解决方案并想到我会分享。

问题是我正在使用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()
  • 中加载我的模块