我正在尝试从MVC 5.0升级到MVC 5.1。
在我的global.asax中,我有以下几行:
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new WebSiteViewEngine(ConfigurationManager.AppSettings["ModulesPath"]));
第一行抛出异常 system.missingMethodException而: 未找到Méthod:'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
发生此错误的任何想法?
答案 0 :(得分:2)
我也面临同样的问题,经过大量的搜索和反复试验,我已经解决了这个问题。
错误:
'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(String viewName,String masterName,Object model) 在System.Web.Mvc.Controller.View() 位于d:\ Pallavi \ C3PO \ 3CPO \ Source中的C3PO.Web.Controllers.UserController.Index() Code \ C3PO \ C3PO.Web \ Controllers \ UserController.cs:第39行 at C3PO.Test.HomeControllerTest.TestExtensionView()在d:\ Pallavi \ C3PO \ 3CPO \源代码\ C3PO \ C3PO.Test \ UnitTest1.cs:第71行
InnerException:System.MissingMethodException 的HResult = -2146233069 Message =找不到方法:'Void 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, IResolver
1 activatorResolver,IDependencyResolver dependencyResolver,VirtualPathProvider pathProvider) 在System.Web.Mvc.BuildManagerViewEngine..ctor(IViewPageActivator viewPageActivator) 在System.Web.Mvc.WebFormViewEngine..ctor(IViewPageActivator viewPageActivator) 在System.Web.Mvc.WebFormViewEngine..ctor() 在System.Web.Mvc.ViewEngines..cctor() 的InnerException:
<强>结论:强>
我发现System.Web.Mvc
版本5.1及更高版本的问题。
我已将其更改为使用System.Web.Mvc 5
,现在一切正常。