【问题标题】:Mvc 4 to 5 upgrade issue - how to resolve Autofac security rules violationMvc 4 到 5 升级问题 - 如何解决 Autofac 安全规则违规
【发布时间】:2020-05-03 13:51:28
【问题描述】:

根据link,我将我的 asp.net Web 应用程序(targetFramework 4.5.2)从 mvc 4 升级到了 5。该解决方案编译时没有错误但是在运行时我得到:

当成员“Autofac.Integration.Mvc.AutofacDependencyResolver.GetService (System.Type)”被覆盖时违反了继承安全规则。覆盖方法的安全访问必须与被覆盖方法的安全访问相匹配。

我搜索了论坛,但没有任何相关帖子可以帮助我确定错误的根源。 尝试将 Autofac.Mcv4 升级到 5(如帖子中所建议)失败(-> Autofac.Mcv5 不针对框架 4.5.2)。将 targetFramework 更改为 4.6 和 4.6.1 也不允许安装 Autofac.Mcv5。

下面我列出了主项目中安装的相关包:

<packages>
  <package id="Autofac" version="3.5.0" targetFramework="net452" />
  <package id="Autofac.Mvc4" version="3.1.0" targetFramework="net452" />
  <package id="Autofac.WebApi2" version="3.4.0" targetFramework="net452" />
  <package id="Microsoft.AspNet.Mvc" version="5.2.0" targetFramework="net452" />
  <package id="Microsoft.AspNet.Providers.Core" version="1.2" targetFramework="net45" />
  <package id="Microsoft.AspNet.Providers.LocalDB" version="1.1" targetFramework="net45" />
  <package id="Microsoft.AspNet.Razor" version="3.2.7" targetFramework="net452" />
  <package id="Microsoft.AspNet.Web.Optimization" version="1.0.0" targetFramework="net45" />
  <package id="Microsoft.AspNet.WebApi" version="5.2.0" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.0" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.0" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.HelpPage" version="5.2.0" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.OData" version="5.2.0" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.Tracing" version="5.2.0" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.0" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebPages" version="3.2.7" targetFramework="net452" />
  <package id="Microsoft.jQuery.Unobtrusive.Ajax" version="2.0.30116.0" targetFramework="net45" />
  <package id="Microsoft.jQuery.Unobtrusive.Validation" version="2.0.30116.0" targetFramework="net45" />
  <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net452" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
  <package id="Modernizr" version="2.6.2" targetFramework="net45" />
  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net452" />
  ... and others
</packages>

另请注意,该解决方案有多个项目(其中两个引用了 Autofac)。 任何帮助确定错误的起源或解决错误的方法将不胜感激。

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-5 autofac autofac-configuration


    【解决方案1】:

    您忘记更新 Autofac.Mvc4 包 to Autofac.Mvc5

    【讨论】:

    • 我试过了,但是:-> Autofac.Mcv5 不针对frameWork 4.5.2。使用 targetFramework 4.6 和 4.6.1 我得到 Autofac.Mcv5 不针对 frameWork x.x.x 的相同错误
    【解决方案2】:

    正如在以前的帖子中已经发布的 Autofac 与 mvc5 一起使用,还需要 Autofac.mvc5。但是在我的情况下,Autofac.mvc5 拒绝安装,因为我的 TargetFramwork 是 4.5.2。当我升级到 4.6.1 Autofac.mvc5 仍然拒绝安装。

    原因很简单:在我的解决方案中有几个项目,其中一个我忘了升级 targetFramwork。现在 Autofac.mvc5 安装正确,继承安全规则违规错误消失了,解决方案运行正常。

    【讨论】:

    • 听起来我的答案是正确的——你需要升级 Autofac.Mvc5。请接受我的回答,以便我为您提供帮助。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    相关资源
    最近更新 更多