Ich habe vor kurzem Ninject und Ninject.Web.Mvc zu einer bestehenden ASP.NET MVC 4 Webanwendung hinzugefügt. Wenn die Website surfen, erhalte ich die folgende Ausnahme, scheinbar zufällig:Zufällig auftretendes Ninject Ausnahme: "Fehler beim Laden der Ninject Komponente ICache"
[InvalidOperationException: Fehler beim Laden Ninject Komponente ICache Keine solche Komponente in der Kernel-Komponente Container registriert.
Vorschläge: 1) Wenn Sie eine benutzerdefinierte Unterklasse für KernelBase erstellt haben, stellen Sie sicher, dass Sie die AddComponents() -Methode ordnungsgemäß implementiert haben . 2) Stellen Sie sicher, dass Sie die Komponente nicht über einen Aufruf von RemoveAll() aus dem Container entfernt haben. 3) Stellen Sie sicher, dass Sie nicht versehentlich mehr als einen Kernel erstellt haben. ] Ninject.Components.ComponentContainer.Get (Typ Komponente) in c: \ Projects \ Ninject \ ninject \ src \ Ninject \ Components \ ComponentContainer.cs: 160 Ninject.Components.ComponentContainer.Get() in c: \ Projekte \ Ninject \ ninject \ src \ Ninject \ Komponenten \ ComponentContainer.cs: 116 Ninject.Web.Common. <> c__DisplayClass2.b__1 (IKernel-Kernel) in c: \ Projekte \ Ninject \ Ninject.Web.Common \ src \ Ninject.Web.Common \ OnePerRequestHttpModule.cs: 74 Ninject.GlobalKernelRegistration.MapKernels (Action`1 Aktion) 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 (Objekt 0, EventArgs e) in c: \ Projekte \ 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 Schritt, Boolean & completedSynchronously) +69
Sobald ich die Ausnahme oben empfangen, einfach erfrischend oder klicken zurück scheint damit die Website wieder normal funktioniert. Kein einziger Bereich der Website scheint dafür verantwortlich zu sein.
Das Problem ist der hier gestellten Frage recht ähnlich: Ninject + "Error loading Ninject component ICache". Das Problem in dieser Frage scheint jedoch auf einen Fehler mit der Erweiterung selbst zurückzuführen zu sein, der älter als ein Jahr ist und anscheinend behoben wurde.
Dies geschieht ohne jegliche Änderung an der Datei NinjectWebCommon.cs, was auch immer. (Keine Module geladen, keine Bindungen hinzugefügt.) Die einzige Möglichkeit für mich zu stoppen ist es, NinjectWebCommon.cs aus dem Projekt insgesamt auszuschließen.
Ich bin mir nicht sicher, welche anderen Informationen enthalten sind, da ich wenig anderes getan habe, als die Nuget-Pakete zu installieren. Vielleicht ist es erwähnenswert, dass dieses Projekt Referenzen zu anderen Assemblys enthält, die Ninject für DI verwenden.
Ich habe mich ziemlich viel umgesehen und weiß nicht, warum das passieren würde. Irgendwelche Vorschläge würden sehr geschätzt werden.
Dies tritt auf, wenn Sie die Methoden WebActivator und Global.asax.cs verwenden, um Ninject in einer MVC-Anwendung zu aktivieren. – UnhipGlint