Asp.net mvc 温莎城堡不受中等信任

Asp.net mvc 温莎城堡不受中等信任,asp.net-mvc,castle-windsor,Asp.net Mvc,Castle Windsor,尝试运行使用Castle Windsor的ASP.NET MVC应用程序时,出现以下错误 “/”应用程序中出现服务器错误 重写成员时违反了继承安全规则: 'Castle.MicroKernel.DefaultKernel.InitializeLifetimeService()'。 重写方法的安全可访问性必须与 正在重写的方法的安全可访问性 描述:在执行过程中发生未处理的异常 当前的web请求。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源 异常详细信息:System.TypeLo

尝试运行使用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

程序集
Castle.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
我已使用验证在两个文件的程序集中声明了
System.Security.AllowPartiallyTrustedCallers
属性


web应用程序正在使用

运行。通过对Castle.Core进行以下更改,我成功地构建并运行了mvc应用程序:

SecurityAssemblyInfo.cs: 仅更改为以下内容:

[程序集:System.Security.AllowPartiallyTrustedCallers] [程序集:System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]

ProxyGenerator.cs: 更改了ProxyGenerator::ProxyGenerator(IProxyBuilder)中的三行:

变成:

// if (HasSecurityPermission())
// {
//    Logger = new TraceLogger("Castle.DynamicProxy", LoggerLevel.Warn);
// }

我不知道这些可能会产生什么样的后果。如果熟悉SecurityRuleSets的人能够插话介绍第一部分,并且@Krzysztof Koźmic可以告诉我为什么我必须注释跟踪记录器,那就太好了。

你从哪里获得源代码的。我从下载了一个版本,但甚至无法在解决方案中加载项目。它一直告诉我不兼容的版本。你能分享一下你建立的最新图书馆吗。谢谢
// if (HasSecurityPermission())
// {
//    Logger = new TraceLogger("Castle.DynamicProxy", LoggerLevel.Warn);
// }