최근에 Ninject와 Ninject.Web.Mvc를 기존 ASP.NET MVC 4 웹 응용 프로그램에 추가했습니다. 사이트를 검색 할 때 나는 겉으로는 무작위로, 다음과 같은 예외가 나타납니다임의로 발생하는 Ninject 예외 : "Ninject 구성 요소 ICache로드 오류"
[InvalidOperationException이 : 오류로드 Ninject에 구성 요소 ICACHE 없음 같은 구성 요소가 커널의 구성 요소 컨테이너에 등록되었습니다.
제안 사항 : 1) KernelBase에 대한 맞춤 하위 클래스를 만든 경우 적절하게 에서 AddComponents() 메소드를 구현했는지 확인하십시오. 2) RemoveAll()을 호출하여 컨테이너에서 구성 요소를 제거하지 않았는지 확인하십시오. 3) 실수로 커널 하나를 이상 생성하지 않았는지 확인하십시오. ]c : \ Projects \ Ninject \ ninject \ src \ Ninject \ Components \ ComponentContainer.cs : 160 Ninject.Components.ComponentContainer.Get (형식 구성 요소) c : \ Ninject.Components.ComponentContainer.Get Projects \ Ninject \ ninject \ src \ Ninject \ Components \ ComponentContainer.cs : 116 Ninject.Web.Common. <> c__DisplayClass2.b__1 C에서 (IKernel 커널) : 프로젝트 \ \ Ninject에 \ Ninject.Web.Common \ SRC \ Ninject.Web.Common \ OnePerRequestHttpModule.cs : 74 Ninject.GlobalKernelRegistration.MapKernels (Action`1 동작)에서 C : \ 프로젝트 \ Ninject에 \ Ninject에 \ SRC \ Ninject에 \ GlobalKernelRegistration.cs : 75 Ninject.Web.Common.OnePerRequestHttpModule.DeactivateInstancesForCurrentHttpRequest() 을 c : \ 프로젝트 \ Ninject에 \ Ninject.Web.Common \ SRC \ Ninject에 .Web.Common \ OnePerRequestHttpModule.cs : 74 Ninject.Web.Common.OnePerRequestHttpModule.b__0 (Object o, EventArgs e) c : \ Projects \ Ninject \ Ninject.Web.Common \ src \ Ninject.Web.Common \ OnePerRequestHttpModule.cs : 56 System.Web.SyncEventExecutionStep.Syst em.Web.HttpApplication.IExecutionStep.Execute() 136 (IExecutionStep 단계, 부울 & completedSynchronously) +69
내가 위의 예외를받을되면, 단순히 새로 고치거나 다시 클릭 보인다 사이트가 다시 정상적으로 작동하게하십시오. 사이트의 어떤 영역도 다른 영역보다 더 많이 발생하지 않는 것으로 보입니다.
문제는 여기에서 묻는 질문과 매우 비슷합니다. Ninject + "Error loading Ninject component ICache". 그러나이 문제는 확장 자체가 포함 된 버그로 인해 발생했으며 1 년이 넘었으며 해결 된 것으로 보입니다.
이 내용은 NinjectWebCommon.cs 파일의 수정없이 발생합니다. (모듈이로드되지 않고 바인딩이 추가되지 않았습니다.) 제가 멈출 수있는 유일한 방법은 NinjectWebCommon.cs을 모두 프로젝트에서 제외하는 것입니다.
Nuget 패키지를 설치하는 것 외에 다른 작업을 수행 했으므로 어떤 정보를 포함해야할지 모르겠습니다. 아마도 주목할 가치는이 프로젝트에는 DI 용 Ninject를 사용하는 다른 어셈블리에 대한 참조가 포함되어 있다는 것입니다.
나는 꽤 많이 둘러 보았고, 왜 이렇게 될지 상실했다. 어떤 제안이라도 대단히 감사하겠습니다.
MVA 응용 프로그램에서 Ninject를 활성화하는 WebActivator 및 Global.asax.cs 기반 방법을 사용할 때 발생합니다. – UnhipGlint