115

サーバーでこのような問題があります

[A]System.Web.WebPages.Razor.Configuration.HostSection は [B]System.Web.WebPages.Razor.Configuration.HostSection にキャストできません。タイプ A は、場所 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System のコンテキスト 'Default' の 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' から発生します。 .Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'. タイプ B は、場所 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System のコンテキスト 'Default' の 'System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' から発生します。 .Web.WebPages.Razor\v4.0_1.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'.

説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.InvalidCastException: [A]System.Web.WebPages.Razor.Configuration.HostSection を [B]System.Web.WebPages.Razor.Configuration.HostSection にキャストできません。タイプ A は、場所 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System のコンテキスト 'Default' の 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' から発生します。 .Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'. タイプ B は、場所 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System のコンテキスト 'Default' の 'System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' から発生します。 .Web.WebPages.Razor\v4.0_1.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'.

ソース エラー:

サーバーとコンピューターに MVC 3 をインストールしました。15 日前のコードベースに置き換えてみましたが、同じ問題が存在します。

今私はそれを解決したい。誰かが私がそれを修正できる方法を知っていますか.

4

9 に答える 9

40

私の場合は、mvc4 から mvc5 にアップグレードしていました。

参照が (新しく作成された mvc5 アプリと) 同期されていることを確認し、それに応じて web.config ファイルを更新しましたが、それでも機能しませんでした。web.configファイル(INSIDE THE VIEWSディレクトリ)を次から変更すると、最終的に機能しました。

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

これに:

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

注意: iis (エクスプレスまたはネイティブ) を停止し、ソリューションをクリーンアップし、ビルドして実行します。

于 2014-02-02T17:32:11.993 に答える
15

Ian's solution worked in one project, but for others I need the more complete info in How to Upgrade to MVC 5 and Web API 2

于 2013-11-21T19:48:32.547 に答える
2

問題:

[A]System.Web.WebPages.Razor.Configuration.HostSection は [B]System.Web.WebPages.Razor.Configuration.HostSection にキャストできません。タイプ A は、場所 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System のコンテキスト 'Default' の 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' から発生します。 .Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'. タイプ B は、場所 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319' のコンテキスト 'Default' の 'System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' から発生します。 \Temporary ASP.NET Files\rbs.ceds.todomvcdemo\73d0b7c7\46e3986d\assembly\dl3\21020800\101279fc_da94cf01\System.Web.WebPages.Razor.dll'.

身元:

エラーは、構成ファイル、つまりプロジェクトの web.config にあります。

ここでは、Razor のバージョンが 2.0.0.0 に設定されていることがわかりますが、プロジェクトでは 2.0.0.0 バージョンは使用できません。

解決:

バージョンを 2.0.0.0 から 3.0.0.0 に変更するだけで、魔法のように機能します。

type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0 type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor 、バージョン = 3.0.0.0

複雑になるため、リダイレクトなどを配置する必要はありません。

于 2014-07-02T23:51:22.923 に答える
0

システム内の 2 つの dll ファイルの場所を開き、ファイルの場所にある dll の 1 つを別の場所にコピーして
、プロジェクトを実行してみます。

于 2014-11-24T10:26:24.120 に答える
0

問題と解決策を見つけました。

1 コードのターゲットを 4.0 にしてから、コードをアップロードすると動作しました。その前に、コードも asp.net MVC 4 に更新します。

今それは仕事です:)

于 2013-07-31T01:22:00.983 に答える