web-dev-qa-db-ja.com

[A] System.Web.WebPages.Razor.Configuration.HostSectionをキャストできません... web.configの問題

次のエラーが表示されます。

[A] System.Web.WebPages.Razor.Configuration.HostSectionは、[B] System.Web.WebPages.Razor.Configuration.HostSectionにキャストできません。タイプAは、「System:Web.WebPages.Razor、Version = 2.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35」から発生します。コンテキスト「Default」の場所「C:\ WINDOWS\Microsoft.Net\Assembly\GAC_MSIL\System .Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll '。タイプBは、「System:Web.WebPages.Razor、Version = 3.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35」から発生します。コンテキスト「Default」の場所「C:\ Users\MyName\AppData\Local\Temp\Temporary ASP.NET Files\root\63e7ff36\a1cb775d\Assembly\dl3\8f568c18\9b7ddacf_d04dcf01\System.Web.WebPages.Razor.dll '.

Stackoverflowで同様の問題を検索し、それらのソリューションを使用しましたが、発生している問題を解決できないようです。

それが突然発生し、きれいな解決策を押したところ、このエラーがポップアップしました。また、ソリューションでnugetパッケージの復元を使用し始めました。パッケージも(Update-packageを使用して)更新したため、そのうちの1つがこの問題に関係している可能性があります。

157
Maxim Geerinck

このエラーの原因は、3.0.0.0ではなくSystem.Web.WebPages.Razor、Version = 2.0.0.0を参照するViewsフォルダー内のweb.configにあります。

通常、これは、このフォルダーを考慮しないnuget-packageのアップグレード後に発生する可能性があります。

Views\Web.configファイルを更新します。

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

mVC 5へのアップグレードの詳細については http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api- project-to-aspnet-mvc-5-and-web-api-2

53
Maxim Geerinck

VS2013、MVC 5.2.2.0、Web Api 2を使用しています。次のセクションのすべてのバージョンを2.0.0.から.0.0.に変更しました。 Web.configプロジェクトのViewフォルダー内にあります。

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

そして問題は解決されます。ビンゴ!!

270
Kuntal Ghosh

この問題に2セントを追加するだけです。

私にとってこのエラーの原因は、他のすべてがSystem.Web.WebPages.Razor, Version=2.0.0.0を使用しているときにViews folder web.configが3.0.0.0を参照していたことであることがわかりました

Nuget-packageのアップグレードがこのフォルダーをどうにかして説明しなかったようです。

101

上記のすべての方法を試してみましたが、プロジェクトフォルダーの直下にあるweb.configに次の行を挿入するまで、問題は解決しませんでした。

  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
  </dependentAssembly>
10
Jian Huang

Route Debuggerでこれを取得した場合は、Route Debuggerのエリアの下のViewsフォルダーでweb.configを更新する必要があります。

3
Luke Puplett

私の場合、VSがMVC 5へのアップグレード時に更新したライブサーバー上のWeb.configも更新することでこれを解決しました。

1
rajeemcariazo