尝试运行使用 Castle Windsor 的 ASP.NET MVC 应用程序时,会出现以下错误。
“/”应用程序中的服务器错误。
覆盖成员时违反了继承安全规则:“Castle.MicroKernel.DefaultKernel.InitializeLifetimeService()”。重写方法的安全可访问性必须与被重写方法的安全可访问性相匹配。
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.TypeLoadException:覆盖成员时违反了继承安全规则:'Castle.MicroKernel.DefaultKernel.InitializeLifetimeService()'。重写方法的安全可访问性必须与被重写方法的安全可访问性相匹配。
源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
堆栈跟踪:
[TypeLoadException:覆盖成员时违反了继承安全规则:'Castle.MicroKernel.DefaultKernel.InitializeLifetimeService()'。重写方法的安全可访问性必须与被重写方法的安全可访问性相匹配。]
Castle.Windsor.WindsorContainer..ctor() +0
这些程序集是根据githubCastle.Core.dll
上Castle.Windsor.dll
可用的源代码构建的。程序集的源代码包括具有以下源代码的文件:SecurityAssemblyInfo.cs
// Sets up assembly level security settings
#if ! SILVERLIGHT
[assembly: System.Security.AllowPartiallyTrustedCallers]
#if DOTNET40
[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level2)]
#endif
#endif
我已经使用ILSpy验证了该System.Security.AllowPartiallyTrustedCallers
属性是在两个文件的程序集中声明的。
Web 应用程序正在使用<trust level="Medium" />
.