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


158

次のエラーが発生します。

[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 package restoreの使用を開始しました。私もパッケージを(Update-packageを使用して)更新したので、そのうちの1つがこの問題に関係している可能性があります。

回答:


274

私はちょうどからのすべてのバージョンを変更したVS2013、MVC 5.2.2.0、ウェブアピ2を使用しています2.0.0.03.0.0.0の次のセクションの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>

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


7
これでうまくいきました。ありがとう!
ジョセフウッドワード2015年

1
これで解決しました。WebフォームアプリをMVC5に変換しています。
レイ

1
@guneysus、手動で編集せずに、Kuntalの答えに相当することをどのように行いますか?
twm 2015年

@twm一般的にUpdate-Packageも編集web.config
guneysus '

これが私がとても好きな理由です!
Homunculus Reticulli

102

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

このエラーの原因は、ビューフォルダー web.configがSystem.Web.WebPages.Razor, Version=2.0.0.0他のすべてが使用しているときに参照 していたことが原因であることがわかりました3.0.0.0

nuget-packageのアップグレードがどういうわけかこのフォルダを考慮に入れていなかったようです。


1
より正確です!ビューフォルダー内のweb.config。
Rohit Verma

58

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

通常、これは、このフォルダーを考慮しない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


5
それは修正のように聞こえませんが、私にとっては回避策です。一部のプロジェクトはmvc4のみに依存している可能性があります
stenly

12
特に、このエラーの修正は「Viewsフォルダーの下のweb.configファイルを更新する」セクションにあるようです。MVC4からの更新-> MVC5とNuGetは、Views / Web.configのバージョン番号を自動的に更新しません。
タイラー

リンクをありがとう!NuGetの更新は、少なくともそのページへのリンクを示していることができれば...素敵だっただろう
Jedidja

ガイドに従って、デバッグモードでサイトを実行できない-「クラスライブラリの出力タイプのプロジェクトは開始できません...」
Matt

2
私のために働いた、私の主な問題は、Viewsサブフォルダーのweb.configのバージョンを更新していなかったために発生しました。
connectedsoftware

13

上記の方法をすべて試しましたが、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>


1

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.