【问题标题】:MissingMethodException FileExistenceCache with MVC 5.1带有 MVC 5.1 的 MissingMethodException FileExistenceCache
【发布时间】:2014-05-06 10:10:46
【问题描述】:

我正在尝试从 MVC 5.0 升级到 MVC 5.1。

在我的 global.asax 中,我有以下行:

ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new WebSiteViewEngine(ConfigurationManager.AppSettings["ModulesPath"]));

第一行抛出异常 System.MissingMethodException: 找不到方法:'Void System.Web.WebPages.FileExistenceCache..ctor(System.Func`1, Int32)'。

在我的网络配置中

<appSettings>
        <add key="webpages:Version" value="3.0.0.0" />
        <add key="webpages:Enabled" value="false" />       
 </appSettings>  

<runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <probing privatePath="modules/bin" />
            <dependentAssembly>
                <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Practices.Unity" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
                <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
                <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
                <bindingRedirect oldVersion="1.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
            </dependentAssembly>            
        </assemblyBinding> 
    </runtime>

我正在使用 System.web.mvc 5.1.20129.0 System.Web.WebPage 3.0.20129.0

任何想法为什么会发生此错误?

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    我也遇到了同样的问题,经过大量的搜索和反复试验,我已经解决了这个问题。

    错误:

    “System.Web.Mvc.ViewEngines”的类型初始化器抛出了一个 例外。

    堆栈跟踪:

    System.TypeInitializationException 未被用户代码处理
    HResult=-2146233036 Message=类型初始化器 “System.Web.Mvc.ViewEngines”引发异常。
    Source=System.Web.Mvc TypeName=System.Web.Mvc.ViewEngines
    堆栈跟踪: 在 System.Web.Mvc.ViewEngines.get_Engines() 在 System.Web.Mvc.Controller.get_ViewEngineCollection() 在 System.Web.Mvc.Controller.View(字符串 viewName,字符串 masterName,对象模型) 在 System.Web.Mvc.Controller.View() 在 d:\Pallavi\C3PO\3CPO\Source 中的 C3PO.Web.Controllers.UserController.Index() 代码\C3PO\C3PO.Web\Controllers\UserController.cs:第 39 行 在 d:\Pallavi\C3PO\3CPO\Source Code\C3PO\C3PO.Test\UnitTest1.cs:line 71 中的 C3PO.Test.HomeControllerTest.TestExtensionView()
    内部异常:System.MissingMethodException H结果=-2146233069 消息=找不到方法:'无效 System.Web.WebPages.FileExistenceCache..ctor(System.Func1<System.Web.Hosting.VirtualPathProvider>, Int32)'. Source=System.Web.Mvc StackTrace: at System.Web.Mvc.BuildManagerViewEngine..ctor(IViewPageActivator viewPageActivator, IResolver1 activatorResolver, IDependencyResolver 依赖解析器,VirtualPathProvider 路径提供者) 在 System.Web.Mvc.BuildManagerViewEngine..ctor(IViewPageActivator viewPageActivator) 在 System.Web.Mvc.WebFormViewEngine..ctor(IViewPageActivator viewPageActivator) 在 System.Web.Mvc.WebFormViewEngine..ctor() 在 System.Web.Mvc.ViewEngines..cctor() 内部异常:

    结论:

    我发现它与System.Web.Mvc 5.1 及更高版本有关。 我已将其更改为使用System.Web.Mvc 5,现在一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-07
      • 2016-02-14
      • 2018-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多