Mvc 4到5升级问题-如何解决违反Autofac安全规则的问题

问题描述 投票:0回答:2

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

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

我在论坛上进行了搜索,但所有相关帖子都无法帮助我确定错误的出处。尝试将Autofac.Mcv4升级到5(如文章中的建议)失败(-> Autofac.Mcv5并不针对frameWork 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
2个回答
1
投票

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


0
投票

如先前文章中已发布的,要使Autofac与mvc5一起使用,还需要Autofac.mvc5。但是,就我而言,因为我的TargetFramwork是4.5.2,所以Autofac.mvc5拒绝安装。当我升级到4.6.1时,Autofac.mvc5仍然拒绝安装。

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

© www.soinside.com 2019 - 2024. All rights reserved.