2014-02-10 1 views
20

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

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

Моего приложения angularjs переднего конца с помощью представлений бритвенных (.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 

А вот раздел бритвой в моем web.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> 

ответ

23

Я решил эту проблему, установив 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, System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
+3

Nice, теперь он работает с Mono. Большое спасибо! – sed

+0

Это не работает для меня. Получение 'Не удалось найти узел Razor Host Тип фабрики: System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version = 5.2.0.0, Culture = neutral, PublicKeyToken = 31BF3856AD364E35' – th1rdey3

+3

Ок. Оказывается, версия NuGet Microsoft ASP.NET теперь 5.2.2.0. поэтому после изменения указанной версии до 5.2.2.0 она работает. – th1rdey3

3

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

Решение состоит в том, чтобы удалить web.config из папки Views.

+0

вы можете уточнить? У меня такая же проблема. Удалили ли вы некоторые строки из вашего Views/web.config? Вы изменили номера версий? благодаря! – Francisc0

+0

Я полностью удалил его. –

12

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

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

Подробнее here

+2

Спасибо! Изменение «3.0.0.0» на «5.2.2.0» работает в Monodevelop. – Salil

+0

Спасибо, что сработало отлично! –

+2

Спасибо вам большое !!! Изменено до 5.2.3.0 здесь :) в MonoDevelop – Jamesst20

2

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

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

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

Смежные вопросы