2013-02-07 58 views
8

我在一個asp.net網頁API項目中使用ninject,並已開始接受這種間歇ninject錯誤:錯誤加載Ninject組件ICACHE

錯誤加載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的bug版本。

回答

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()