Ho aggiunto di recente sia Ninject che Ninject.Web.Mvc a un'applicazione Web ASP.NET MVC 4 esistente. Durante la navigazione del sito, ricevo il seguente eccezione, apparentemente a caso:Eccezione casuale a ninice: "Errore durante il caricamento del componente Ninik ICache"
[InvalidOperationException: Errore durante il caricamento Ninject componente Icache No tale componente è stato registrato in componente contenitore del kernel.
Suggerimenti: 1) Se è stata creata una sottoclasse personalizzata per KernelBase, assicurarsi di aver installato correttamente il metodo AddComponents(). 2) Assicurarsi di non aver rimosso il componente dal contenitore tramite una chiamata a RemoveAll(). 3) Assicurati di non aver creato accidentalmente più di uno kernel. ] Ninject.Components.ComponentContainer.Get (Tipo componente) in c: \ Projects \ Ninject \ ninject \ src \ Ninject \ Components \ ComponentContainer.cs: 160 Ninject.Components.ComponentContainer.Get() in c: \ Progetti \ Ninject \ ninject \ src \ Ninject \ Components \ ComponentContainer.cs: 116 Ninject.Web.Common. <> c__DisplayClass2.b__1 (kernel IKernel) in c: \ Projects \ Ninject \ Ninject.Web.Common \ src \ Ninject.Web.Common \ OnePerRequestHttpModule.cs: 74 Ninject.GlobalKernelRegistration.MapKernels (Azione`1 azione) in c: \ Projects \ Ninject \ Ninject \ src \ Ninject \ GlobalKernelRegistration.cs: 75 Ninject.Web.Common.OnePerRequestHttpModule.DeactivateInstancesForCurrentHttpRequest() in c: \ Projects \ Ninject \ Ninject.Web.Common \ src \ Ninject .Web.Common \ OnePerRequestHttpModule.cs: 74 Ninject.Web.Common.OnePerRequestHttpModule.b__0 (Oggetto o, EventArgs e) in c: \ Projects \ Ninject \ Ninject.Web.Common \ src \ Ninject.Web.Common \ OnePerRequestHttpModule.cs: 56 System.Web.SyncEventExecutionStep.Syst em.Web.HttpApplication.IExecutionStep.Execute() 136 System.Web.HttpApplication.ExecuteStep (IExecutionStep passo, booleano & completedSynchronously) +69
Una volta che ricevo l'eccezione di cui sopra, semplicemente rinfrescante o cliccando di nuovo sembra per far sì che il sito riprenda a funzionare normalmente di nuovo. Nessuna area del sito sembra causarne più di un'altra.
Il problema è molto simile alla domanda posta qui: Ninject + "Error loading Ninject component ICache". Tuttavia, il problema in questa domanda sembra essere causato da un bug con l'estensione stessa, ha più di un anno e sembra essere stato risolto.
Ciò si verifica senza alcuna modifica al file NinjectWebCommon.cs, qualunque sia. (Nessun modulo caricato, nessun collegamento aggiunto.) L'unico modo per farmi smettere è di escludere NinjectWebCommon.cs dal progetto, del tutto.
Non sono sicuro di quali altre informazioni includere, poiché non ho fatto altro che installare i pacchetti Nuget. Forse vale la pena notare che questo progetto include riferimenti ad altri assembly che utilizzano Ninject per DI.
Mi sono guardato intorno un po 'e non riesco a capire perché questo si sarebbe verificato. Ogni suggerimento sarà molto apprezzato.
Ciò si verifica quando si utilizzano i metodi basati su WebActivator e Global.asax.cs per abilitare Ninject in un'applicazione MVC. – UnhipGlint