簡體   English   中英

Mvc 4 到 5 升級問題 - 如何解決 Autofac 安全規則違規

[英]Mvc 4 to 5 upgrade issue - how to resolve Autofac security rules violation

我根據此鏈接將我的 asp.net web 應用程序(targetFramework 4.5.2)從 mvc 4 升級到 5。 該解決方案編譯沒有錯誤但是在運行時我得到:

覆蓋成員“Autofac.Integration.Mvc.AutofacDependencyResolver.GetService (System.Type)”時違反了 inheritance 安全規則。 覆蓋方法的安全訪問必須與被覆蓋方法的安全訪問相匹配。

我搜索了論壇,但沒有任何相關帖子可以幫助我確定錯誤的根源。 嘗試將 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 的引用)。 任何幫助確定錯誤的起源或解決錯誤將不勝感激。

您忘記將 Autofac.Mvc4 package 更新為 Autofac.Mvc5

正如在之前的帖子中已經發布的 Autofac 與 mvc5 一起使用,還需要 Autofac.mvc5。 但是在我的情況下,Autofac.mvc5 拒絕安裝,因為我的 TargetFramwork 是 4.5.2。 當我升級到 4.6.1 Autofac.mvc5 仍然拒絕安裝。

原因很簡單:在我的解決方案中有幾個項目,其中一個我忘了升級 targetFramwork。 現在 Autofac.mvc5 安裝正確, inheritance 安全規則違規錯誤消失了,解決方案運行正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM