Заводская ошибка Хоста Razor

Я получаю ошибку MvcWebRazorHostFactory, пытаясь запустить мое приложение, но это не приложение MVC вообще. У меня есть следующие веб-пакеты, установленные через nuget:

Microsoft ASP.NET Razor
Microsoft ASP.NET Web API 2.1
Microsoft ASP.NET Web Pages

мое приложение - AngularJS front end с использованием представлений бритвы (.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

и вот раздел бритвы в моей сети.config:

<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>

6 ответов


я решил эту проблему путем установки System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc версия 5.2.0.0 и это сработало, наконец-то! Почему?--2-->? та же версия, что и NuGet Microsoft ASP.NET проект.

так, в строке /Views/Web.Config должно быть:

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

для пользы любого превращаясь ASP.NET веб-приложения MVC 5 с использованием Xamarin Studio v5.5.3 в OSX, удаление / Views / Web.config не работал для меня и создал другие ошибки.

чтобы исправить это, откройте / Views / Web.config и измените все экземпляры 5.2.0.0 на 5.2.2.0

более подробная информация здесь


поэтому, по-видимому, какой-то пакет, который я получил от nuget, добавляет веб.config в папке Views. В этой паутине.config были настройки для MvcWebRazorHostFactory. Я думаю, что это произошло, когда я добавил для моего проекта с помощью диалогового окна.

решение: удалить веб.config из папки Вид.


Я начал получать эту ошибку в моей бритвой .страницы cshtml в проекте MVC после некоторого управления / обновления пакета NuGet.

Я не хотел удалять с Views папка, потому что я настроил ее ширину некоторые <add namespace="..." /> элементы. Но я заметил, что версия=... в <host factoryType="..." /> не соответствует моей версии System.Web.Mvc (проверена версия в Обозревателе объектов).

изменение этого номера версии в соответствии с моим System.Web.Mvc сборка и перезапуск Visual Studio, Исправлена проблема для меня (как предложил Даниил)


изменена версия MvcWebRazorHostFactory на ту же версию системы.Сеть.Mvc, который решил мою проблему.


несколько ответов указывают в правильном направлении, но я не был уверен, где в интерфейсе Microsoft Visual Studio для Mac я мог бы найти соответствующий номер версии для использования в части версии .

в интересах других пользователей VS для Mac, ответ заключается в том, чтобы просто щелкнуть правой кнопкой мыши на Microsoft.AspNet.Mvc пакет в списке пакеты в обозревателе решений.

version number display

в моем случае, версия пакета был "5.2.6" после обновления пакета, поэтому я установил часть версии до Version=5.2.6.0. Это решило проблему.