アプリを実行しようとすると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>
System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc
Versionを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" />
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
詳細 こちら
いくつかの答えは正しい方向を指していますが、Microsoft Visual Studio for MacインターフェースのどこでfactoryType
属性のバージョン部分に使用する適切なバージョン番号を見つけることができるかわかりませんでした。
他のVS for Macユーザーのために、答えは、ソリューションエクスプローラーの[パッケージ]リストでMicrosoft.AspNet.Mvc
パッケージを右クリックすることです。
私の場合、パッケージの更新後のパッケージバージョンは「5.2.6」だったので、factoryType
属性のバージョン部分をVersion=5.2.6.0
に設定しました。これで問題は解決しました。
どうやら私がnugetから取得したいくつかのパッケージは、web.configをViewsフォルダーに追加します。このweb.configには、MvcWebRazorHostFactoryの設定がありました。これは、ダイアログボックスを使用してプロジェクトにビューを追加したときに発生したと思います。
解決策は、Viewsフォルダーからweb.configを削除することです。
MvcWebRazorHostFactoryのバージョンを、問題を解決したSystem.Web.Mvcと同じバージョンに変更しました。
NuGetパッケージの管理/アップグレードの後で、MVCプロジェクトのRazor .cshtmlページでこのエラーが発生し始めました。
一部のWeb.config
要素の幅をカスタマイズしたため、Views
フォルダーから<add namespace="..." />
ファイルを完全に削除したくありませんでした。しかし、<Host factoryType="..." />
のVersion = ... did n'tがSystem.Web.Mvc
のバージョンと一致していることに気付きました(オブジェクトブラウザでチェックされたバージョン)。
このバージョン番号をSystem.Web.Mvc
アセンブリのバージョン番号と一致するように変更し、Visual Studioを再起動すると、問題が修正されました(- ダニエル )
これは今日私に起こりました。ビューフォルダー内のweb.configのバージョン番号が、ソリューションのweb.configのバージョン番号と一致することを確認しました。
お役に立てれば。
ダイアログが表示され、パッケージを注意深く読みます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" />
それが役に立てば幸い!