2013-02-07 2 views
8

Sto usando Ninject in un progetto Web API asp.net e hanno iniziato a ricevere questo errore intermittente Ninject:Errore Icache carico componente Ninject

"Errore durante il caricamento Ninject Icache componente Nessun tale componente è stato registrato nel kernel di contenitore componente "

sto usando:.

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

sono tutti portato nella mia progetto con NuGet carico le mie moduli in IocConfig.RegisterIoc e hanno fatto altri cambiamenti o modifiche.

Potrebbe non essere correlato ma il problema si è verificato all'incirca nello stesso momento in cui ho iniziato a iniettare IKernel in uno dei miei costruttori. Non ho impostato un binding per questo dopo aver letto del "risolutore speciale".

Ho letto attraverso una serie di domande simili qui:

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"

Anche se in ciascuno di questi casi, l'OP ha lo stesso errore come me il la soluzione non è appropriata: non sto creando kernel figlio e non sto utilizzando la versione bugged di ninject.

risposta

5

Ho trovato la soluzione e ho pensato di condividere.

Il problema era che stavo usando Ninject.MVC3 che sembra essere un pacchetto errato per Web-API.

Invece ho bisogno di usare il pacchetto Ninject.Web.WebApi-RC, come descritto da questo post:

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

Passi ho seguito per una correzione sono

  • disinstallato Ninject.MVC3 e Ninject.Web.Common
  • elimina tutti i file ninject dalla cartella App_Start.
  • installare Ninject.Web.Common e Ninject.Web.WebApi-RC da NuGet
  • caricare i miei moduli in NinjectWebCommon.RegisterServices()