我得到一个MvcWebRazorHostFactory错误试图运行我的应用程序,但它不是一个MVC应用程序。我通过nuget安装了以下Web包:
Microsoft ASP.NET Razor Microsoft ASP.NET Web API 2.1 Microsoft ASP.NET Web Pages
我的应用程序是使用剃刀视图(.cshtml)的angularjs前端。我不明白为什么我不断得到这个错误。
An exception of type 'System.InvalidOperationException' occurred in System.Web.WebPages.Razor.dll but was not handled in user code Additional information: Could not locate Razor Host Factory type: System.Web.Mvc.MvcWebRazorHostFactory,System.Web.Mvc,Version=5.0.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35
这里是我的web.config中的剃刀部分:
<system.web.webPages.razor> <host factoryType="System.Web.WebPages.Razor.WebRazorHostFactory,System.Web.WebPages.Razor,Version=3.0.0.0,PublicKeyToken=31BF3856AD364E35" /> <pages pageBaseType="System.Web.WebPages.WebPage"> <namespaces> <add namespace="System.Web.Configuration" /> <add namespace="System.Web.Optimization" /> <add namespace="System.Web.Routing" /> </namespaces> </pages>
解决方法
我通过将System.Web.Mvc.MvcWebRazorHostFactory,System.Web.Mvc版本设置为5.2.0.0来解决这个问题,最后工作!为什么选择5.2.0.0?与NuGet Microsoft ASP.NET项目相同的版本。所以,/Views/Web.Config中的行看起来如下:
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory,Version=5.2.0.0,PublicKeyToken=31BF3856AD364E35" />