16

Mono と XSP4 を使用して、Linux ボックスで MVC5 Web サイトを起動しようとしています。ビューなしで動作しますが、何かをレンダリングしようとするとエラーが発生します。

これが私のテストコードです。何も変更していないことに注意してください。これは基本的に、EF やその他のライブラリのない空のサイトです。必要最小限の MVC5 + Razor です。

public ActionResult Index()
{
    // return Content("'sall good"); // works
    return View();
}

System.InvalidOperationException

Razor ホスト ファクトリの種類が見つかりませんでした: System.Web.Mvc.MvcWebRazorHostFactory、System.Web.Mvc、バージョン = 5.0.0.0、カルチャ = ニュートラル、PublicKeyToken = 31BF3856AD364E35

説明: HTTP 500.リクエストの処理中にエラーが発生しました。

詳細: Web 以外の例外。例外発生元 (アプリケーションまたはオブジェクトの名前): System.Web.WebPages.Razor.

スタックトレース

at System.Web.WebPages.Razor.WebRazorHostFactory.CreateFactory (System.String typeName) [0x00000] in <filename unknown>:0

at System.Collections.Concurrent.ConcurrentDictionary`2+<GetOrAdd>c__AnonStorey3[System.String,System.Func`1[System.Web.WebPages.Razor.WebRazorHostFactory]].<>m__0 () [0x00000] in <filename unknown>:0 

at (wrapper delegate-invoke) System.Func`1<System.Collections.Generic.KeyValuePair`2<string, System.Func`1<System.Web.WebPages.Razor.WebRazorHostFactory>>>:invoke_TResult__this__ ()

...

Version=5.0.0.0 を 4.0.0.0 および 3.0.0.0 などに変更しようとしましたが、何も機能しません。4.0.0.0 について、今でも同じエラーが発生します。

希望はありますか?

4

6 に答える 6

31

問題は、フォルダWeb.config内にあります。パラメータは MVC バージョンと正確に一致する必要があります。/Viewssystem.web.webPages.razor host

たとえば、MVC 5.2.2.0 を使用している場合は、次のようになります<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

于 2014-09-30T19:10:42.850 に答える
0

@stan ソリューションは、問題の解決に役立ちました。

Mac M1 チップで Visual Studio を使用しています。

私の場合、views/web.configファイル内で次のことを修正しました

<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

<pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <controls>
    <add assembly="System.Web.Mvc, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
  </controls>
</pages>

References > Packages に従ってバージョンを更新し、そこでバージョンを確認して更新します。

プロジェクト/ソリューションの再構築

于 2021-07-21T18:35:25.027 に答える
-1

スタンの言う通りだ。System.Web.MVC参照フォルダー (プロジェクト内) で「右クリック > プロパティ」を実行するバージョンを確認します。次に、その行を更新します/views/web.config

于 2016-02-13T16:10:57.087 に答える