2012-10-02 2 views
1

내가 nuget 패키지 관리자에서 MVC3를 설치 사용하려고 시도하는 모든 것이 확인 컴파일하는 것 같지만 내 응용 프로그램을 실행하려고하면 나는 다음과 점점 오전 오류 방법 :Mvc3 및 Ninject에

System.TypeLoadException was unhandled by user code 
    HResult=-2146233054 
    Message=Inheritance security rules violated by type: 'Ninject.Web.Mvc.Filter.FilterContextParameter'. Derived types must either match the security accessibility of the base type or be less accessible. 
    Source=mscorlib 
    TypeName=Ninject.Web.Mvc.Filter.FilterContextParameter 
    StackTrace: 
     at System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly assembly, ObjectHandleOnStack retTypes) 
     at System.Reflection.RuntimeAssembly.GetExportedTypes() 
     at Ninject.Infrastructure.Language.ExtensionsForAssembly.HasNinjectModules(Assembly assembly) in c:\Projects\Ninject\ninject\src\Ninject\Infrastructure\Language\ExtensionsForAssembly.cs:line 25 
     at Ninject.Modules.CompiledModuleLoaderPlugin.<LoadModules>b__0(Assembly asm) in c:\Projects\Ninject\ninject\src\Ninject\Modules\CompiledModuleLoaderPlugin.cs:line 81 
     at Ninject.Modules.AssemblyNameRetriever.AssemblyChecker.GetAssemblyNames(IEnumerable`1 filenames, Predicate`1 filter) in c:\Projects\Ninject\ninject\src\Ninject\Modules\AssemblyNameRetriever.cs:line 114 
     at Ninject.Modules.AssemblyNameRetriever.AssemblyChecker.GetAssemblyNames(IEnumerable`1 filenames, Predicate`1 filter) 
     at Ninject.Modules.AssemblyNameRetriever.GetAssemblyNames(IEnumerable`1 filenames, Predicate`1 filter) in c:\Projects\Ninject\ninject\src\Ninject\Modules\AssemblyNameRetriever.cs:line 54 
     at Ninject.Modules.CompiledModuleLoaderPlugin.LoadModules(IEnumerable`1 filenames) in c:\Projects\Ninject\ninject\src\Ninject\Modules\CompiledModuleLoaderPlugin.cs:line 81 
     at Ninject.Modules.ModuleLoader.LoadModules(IEnumerable`1 patterns) in c:\Projects\Ninject\ninject\src\Ninject\Modules\ModuleLoader.cs:line 60 
     at Ninject.KernelBase.Load(IEnumerable`1 filePatterns) in c:\Projects\Ninject\ninject\src\Ninject\KernelBase.cs:line 236 
     at Ninject.KernelBase..ctor(IComponentContainer components, INinjectSettings settings, INinjectModule[] modules) in c:\Projects\Ninject\ninject\src\Ninject\KernelBase.cs:line 97 
     at Ninject.KernelBase..ctor(INinjectModule[] modules) in c:\Projects\Ninject\ninject\src\Ninject\KernelBase.cs:line 57 
     at Ninject.StandardKernel..ctor(INinjectModule[] modules) in c:\Projects\Ninject\ninject\src\Ninject\StandardKernel.cs:line 46 
     at HoneyBadger.Web.Mvc.App_Start.NinjectWebCommon.CreateKernel() in c:\HoneyBadger\trunk\HoneyBadger.Web.Mvc\HoneyBadger.Web.Mvc\App_Start\NinjectWebCommon.cs:line 43 
     at Ninject.Web.Common.Bootstrapper.Initialize(Func`1 createKernelCallback) in c:\Projects\Ninject\Ninject.Web.Common\src\Ninject.Web.Common\Bootstrapper.cs:line 50 
     at HoneyBadger.Web.Mvc.App_Start.NinjectWebCommon.Start() in c:\HoneyBadger\trunk\HoneyBadger.Web.Mvc\HoneyBadger.Web.Mvc\App_Start\NinjectWebCommon.cs:line 26 
    InnerException: 

하나를 아이디어 ??

업데이트 : 수행 한 후

Attempt by security transparent method 'HoneyBadger.Web.Mvc.App_Start.NinjectWebCommon..cctor()' to access security critical method 'Ninject.Web.Common.Bootstrapper..ctor()' failed. 

Assembly 'HoneyBadger.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is marked with the AllowPartiallyTrustedCallersAttribute, and uses the level 2 security transparency model. Level 2 transparency causes all methods in AllowPartiallyTrustedCallers assemblies to become security transparent by default, which may be the cause of this exception. 
+0

내부 예외가 무엇입니까? 표준 MVC 웹 사이트에서 실행하고 있습니까? .NET의 어떤 버전을 사용하고 있습니까? –

+0

.NET v4, MVC4 및 내부 ex가 null입니다. – spyter

+0

이걸로 어디서 났니? MVC4 프로젝트를 Ninject 2.2에서 3.0으로 업그레이드하고 유사한 문제가 발생합니다. – mackie

답변

0

:

나는 또한 AllowPartiallyTrustedCallers를 추가 한 후이 발표되는 새로운 StandardKernel()

private static IKernel CreateKernel() 
     { 
      var kernel = new StandardKernel(); 

      kernel.Bind<Func<IKernel>>().ToMethod(ctx =>() => new Bootstrapper().Kernel); 
      kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>(); 

      RegisterServices(kernel); 

      return kernel; 
     } 

새로운 오류에 폭격 것을 추가하고 싶었 some research online, 내가 찾은 한 가지는 조립을 위해 AllowPartiallyTrustedCallers이 필요하다는 것입니다.

[assembly: AllowPartiallyTrustedCallers] 

프로젝트에서 사용하도록 설정 했습니까?

더 많은 링크 :

+0

그게 날 원래의 오류를 통과했지만 지금은 (내 원래 게시물을 참조하십시오, 내가 그것을 업데이 트) – spyter

+0

참고 : 나는 행운과 함께 [어셈블리 : SecurityRules (SecurityRuleSet.Level1)]를 통해 초 수준을 변경 시도 .. :/ – spyter

+0

비슷한 문제와 관련하여 웹에 많은 문제가있는 것으로 보입니다. https://groups.google.com/forum/#!topic/ninject/xInlcd2b1l8/discussion http://stackoverflow.com/questions/7494298/ninject-mockingkernel-moq-security-exception https://github.com/ninject/ninject.web.mvc/issues/15 (이 마지막 버전은 중간 신뢰 문제가 MVC 3 버전에서 해결되지 않았다고 말합니다.) –