Asp.net Razor主机工厂错误
我在尝试运行我的应用程序时遇到MvcWebRazorHostFactory错误,但它根本不是MVC应用程序。我通过nuget安装了以下web软件包:Asp.net Razor主机工厂错误,asp.net,asp.net-mvc,razor,asp.net-webpages,Asp.net,Asp.net Mvc,Razor,Asp.net Webpages,我在尝试运行我的应用程序时遇到MvcWebRazorHostFactory错误,但它根本不是MVC应用程序。我通过nuget安装了以下web软件包: Microsoft ASP.NET Razor Microsoft ASP.NET Web API 2.1 Microsoft ASP.NET Web Pages 我的应用程序是angularjs前端,使用razor视图(.cshtml)。我不明白为什么我总是犯这个错误 An exception of type 'System.InvalidOp
Microsoft ASP.NET Razor
Microsoft ASP.NET Web API 2.1
Microsoft ASP.NET Web Pages
我的应用程序是angularjs前端,使用razor视图(.cshtml)。我不明白为什么我总是犯这个错误
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
下面是my web.config中的razor部分:
<system.web.webPages.razor>
<host factoryType="System.Web.WebPages.Razor.WebRazorHostFactory, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, 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>
显然,我从nuget获得的某个软件包在Views文件夹中添加了一个web.config。在此web.config中有MvcWebRazorHostFactory的设置。我想这是在我使用对话框向项目添加视图时发生的
解决方案是从视图文件夹中删除web.config。我通过将
System.web.Mvc.MvcWebRazorHostFactory、System.web.Mvc
版本设置为5.2.0.0
解决了这个问题,最终成功了!为什么5.2.0.0
与NuGet Microsoft ASP.NET project的版本相同。
因此,/Views/Web.Config
中的行应该是:
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
为了让在OSX上使用Xamarin Studio v5.5.3开发ASP.NET MVC 5 web应用程序的人受益,删除/Views/web.config对我无效,并导致其他错误 要修复它,请打开/Views/Web.config并将5.2.0.0的所有实例更改为5.2。2.0
更多详细信息我在一个MVC项目中的Razor.cshtml页面中,在一些NuGet包管理/升级之后,开始出现这个错误
我不想将
Web.config
文件完全从视图
文件夹中删除,因为我自定义了它的宽度(一些)将MvcWebRazorHostFactory的版本更改为System.Web.Mvc的同一版本,解决了我的问题。有几个答案指向正确的方向,但我不确定在Microsoft Visual Studio for Mac界面的何处可以找到用于factoryType
属性的版本部分的适当版本号
对于Mac用户的其他VS,答案是只需右键单击解决方案资源管理器中“软件包”列表中的Microsoft.AspNet.Mvc
软件包
在我的例子中,包更新后的包版本是“5.2.6”,因此我将factoryType
属性的版本部分设置为version=5.2.6.0
。这就解决了问题。这件事今天发生在我身上。我只是确保views文件夹中web.config的版本号与解决方案的web.config的版本号匹配
希望这有帮助
在Web项目中,打开“引用”树节点。
查找“Assemblies”文件夹并打开它
查找System.Web.Mvc,右键单击它,然后选择“属性”
将出现一个对话框,仔细阅读软件包全名
字段并查找版本号。例如,我有一个:
System.Web.Mvc,版本=5.2.7.0,文化性=中性,PublicKeyToken=31bf3856ad364e35
因此,在Web.config(内部视图文件夹)中,替换版本号
就我而言,它最初是:
现在我有(查看版本值):
希望有帮助 对于拥有Visual Studio 2019的MacBook用户,您只需转到Web.config文件并将System.Web.Mvc的版本更新到Nuget packages文件夹中的版本即可。您能详细说明一下吗?我也有同样的问题。是否从视图/web.config中删除了一些行?你改变版本号了吗?谢谢我把它完全移除了。这对我不起作用。获取找不到Razor主机工厂类型:System.Web.Mvc.MvcWebRazorHostFactory,System.Web.Mvc,版本=5.2.0.0,区域性=中性,PublicKeyToken=31BF3856AD364E35
确定。。事实证明,NuGet Microsoft ASP.NET版本现在是5.2.2.0。因此,在将上述版本更改为5.2.2.0之后,它就开始工作了。将该版本设置为正在使用的System.Web.Mvc版本。这是在/Views目录中的Web.config中,对吗?这是最好的答案,主要是因为“为什么”部分。只需检查您的AspNet.Mvc包版本,使用它,它就会工作。谢谢!将“3.0.0.0”更改为“5.2.2.0”对Monodevelop有效。