尝试通过安全透明方法访问安全关键类型失败

Posted

技术标签:

【中文标题】尝试通过安全透明方法访问安全关键类型失败【英文标题】:Attempt by security transparent method to access security critical type failed 【发布时间】:2017-03-15 15:13:51 【问题描述】:

我在 MVC4 应用程序中遇到错误

 Attempt by security transparent method  'Autofac.Integration.Mvc.RegistrationExtensions.RegisterControllers(Autofac.Cont    ainerBuilder, System.Reflection.Assembly[])' to access security critical type 'Autofac.Builder.IRegistrationBuilder`3<System.Object,Autofac.Features.Scanning.ScanningActivatorData,Autofac.Builder.DynamicRegistrationStyle>' failed.

 Assembly 'Autofac.Integration.Mvc, Version=3.0.0.0, Culture=neutral,  
 PublicKeyToken=17863af14b0044da' 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.

我尝试了以下链接中给出的不同解决方案,但它们都不适合我 Attempt by security transparent method to access security critical method failed

Attempt by security transparent method xxx to access security critical yy 和 https://forums.asp.net/t/1939805.aspx

请帮忙

【问题讨论】:

你有机会看看这个吗?github.com/autofac/Autofac/issues/459 您需要在此处添加更多内容,例如您的 NuGet packages.config,以便我们看到您引用的内容。 【参考方案1】:

我很确定这是版本问题。我错误地安装了Autofac.WebApi,Autofac的版本自动为3.x.x。然后问题来了。之后我意识到我必须使用 Autofac.WebApi2 而不是 Autofac.WebApi。我安装了,Autofac版本升到4.6.2,然后booom问题就解决了。

希望对你有帮助

【讨论】:

这是解决问题的正确方法。我还使用了 WebApi 而不是 WebApi2【参考方案2】:

我将 Autofac 4.0.0 替换为 Autofac 3.5.0 版本并将 Autofac.Integration.Mvc 替换为 3.0.0。这解决了问题

【讨论】:

以上是关于尝试通过安全透明方法访问安全关键类型失败的主要内容,如果未能解决你的问题,请参考以下文章

尝试通过安全透明方法“Compat.Button1_Click(System.Object, System.EventArgs)”访问安全关键方法“x”失败

急急急!!!在线等!!!方法必须是安全关键的或安全可靠关键的,才能调用本机代码。

通过安全透明方法 Kigg.Web.jQueryScriptManager.OnInit 的尝试

尝试通过安全透明方法“WebMatrix.WebData.PreApplicationStartCode.Start()”

如何解决错误“尝试通过安全透明方法'System.Web.Http.GlobalConfiguration.get_Configuration()

如何完全信任 PayPalCoreSDK