web-dev-qa-db-ja.com

Razorホストファクトリエラー

アプリを実行しようとすると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, 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>
32
Ryan Langton

System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc Versionを5.2.0.0に設定することでこの問題を解決し、ようやく機能しました。なぜ5.2.0.0NuGet Microsoft ASP.NETプロジェクトと同じバージョン

したがって、/Views/Web.Configの行は次のようになります。

<Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
37
Daniel Kmak

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

詳細 こちら

15
Smyrnian

いくつかの答えは正しい方向を指していますが、Microsoft Visual Studio for MacインターフェースのどこでfactoryType属性のバージョン部分に使用する適切なバージョン番号を見つけることができるかわかりませんでした。

他のVS for Macユーザーのために、答えは、ソリューションエクスプローラーの[パッケージ]リストでMicrosoft.AspNet.Mvcパッケージを右クリックすることです。

version number display

私の場合、パッケージの更新後のパッケージバージョンは「5.2.6」だったので、factoryType属性のバージョン部分をVersion=5.2.6.0に設定しました。これで問題は解決しました。

8
Otto G

どうやら私がnugetから取得したいくつかのパッケージは、web.configをViewsフォルダーに追加します。このweb.configには、MvcWebRazorHostFactoryの設定がありました。これは、ダイアログボックスを使用してプロジェクトにビューを追加したときに発生したと思います。

解決策は、Viewsフォルダーからweb.configを削除することです。

3
Ryan Langton

MvcWebRazorHostFactoryのバージョンを、問題を解決したSystem.Web.Mvcと同じバージョンに変更しました。

2
jmwhicke

NuGetパッケージの管理/アップグレードの後で、MVCプロジェクトのRazor .cshtmlページでこのエラーが発生し始めました。

一部のWeb.config要素の幅をカスタマイズしたため、Viewsフォルダーから<add namespace="..." />ファイルを完全に削除したくありませんでした。しかし、<Host factoryType="..." />のVersion = ... did n'tSystem.Web.Mvcのバージョンと一致していることに気付きました(オブジェクトブラウザでチェックされたバージョン)。

このバージョン番号をSystem.Web.Mvcアセンブリのバージョン番号と一致するように変更し、Visual Studioを再起動すると、問題が修正されました(- ダニエル

2
Richard Welsh

これは今日私に起こりました。ビューフォルダー内のweb.configのバージョン番号が、ソリューションのweb.configのバージョン番号と一致することを確認しました。

お役に立てれば。

0
user3743493
  1. Webプロジェクト内で、「参照」ツリーノードを開きます。
    1. 「Assemblies」フォルダを探して開きます。
    2. System.Web.Mvcを探して右クリックし、[プロパティ]を選択します

ダイアログが表示され、パッケージを注意深く読みますfull nameフィールドにアクセスして、バージョン番号を探します。たとえば、私はこれを持っています:

System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

したがって、Web.config(insideViewsfolder)でバージョン番号を置き換えます!

私の場合、それはもともと:

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

今私は持っています(バージョンの値を見てください):

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

それが役に立てば幸い!

0
lmoglia