[A] System.Web.WebPages.Razor.Configuration.HostSection tidak dapat dilemparkan ke ... masalah web.config

158

Saya mendapatkan kesalahan berikut:

[A] System.Web.WebPages.Razor.Configuration.HostSection tidak dapat dilemparkan ke [B] System.Web.WebPages.Razor.Configuration.HostSection. Tipe A berasal dari 'System.Web.WebPages.Razor, Versi = 2.0.0.0, Culture = netral, PublicKeyToken = 31bf3856ad364e35' dalam konteks 'Default' di lokasi 'C: \ WINDOWS \ Microsoft.Net \ assembly \ GAC_MSIL \ System .Web.WebPages.Razor \ v4.0_2.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '. Tipe B berasal dari 'System.Web.WebPages.Razor, Versi = 3.0.0.0, Culture = netral, PublicKeyToken = 31bf3856ad364e35' dalam konteks 'Default' di lokasi 'C: \ Users \ MyName \ AppData \ Local \ Temp \ Temporary File ASP.NET \ root \ 63e7ff36 \ a1cb775d \ assembly \ dl3 \ 8f568c18 \ 9b7ddacf_d04dcf01 \ System.Web.WebPages.Razor.dll '.

Saya telah mencari di stackoverflow untuk masalah yang sama dan saya menggunakan solusi mereka tetapi tampaknya tidak memperbaiki masalah yang saya alami.

Tiba-tiba terjadi, saya hanya menekan solusi bersih dan kesalahan ini muncul. Saya juga mulai menggunakan paket nuget restore pada solusinya. Saya juga memperbarui paket saya (menggunakan Paket pembaruan) sehingga salah satunya mungkin ada hubungannya dengan masalah ini.

Maxim Geerinck
sumber

Jawaban:

274

Saya menggunakan VS2013, MVC 5.2.2.0, Web Api 2. Saya baru saja mengubah semua versi dari 2.0.0.0 ke 3.0.0.0 dari bagian berikut dari Web.config berada di dalam folder View dari proyek saya.

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

Dan masalahnya terpecahkan. BINGO !!

Kuntal Ghosh
sumber
7
Ini berhasil bagi saya. Terima kasih!
Joseph Woodward
1
Ini menyelesaikannya untuk saya. Saya mengonversi aplikasi formulir web ke MVC5.
Ray
1
@guneysus, bagaimana Anda akan melakukan hal yang setara dengan jawaban Kuntal tanpa mengedit manual?
twm
@twm Umumnya Update-Packagejuga dieditweb.config
guneysus
Inilah sebabnya saya MENCINTAI BEGITU!
Homunculus Reticulli
102

Hanya menambahkan dua sen saya ke masalah ini.

Saya menemukan bahwa penyebab kesalahan ini bagi saya adalah bahwa folder Views web.config merujuk System.Web.WebPages.Razor, Version=2.0.0.0ketika semuanya menggunakan3.0.0.0

Tampaknya upgrade paket nuget tidak memperhitungkan folder ini.

Niclas Lindqvist
sumber
1
ini lebih tepat! web.config dalam folder views.
Rohit Verma
58

Penyebab kesalahan ini adalah web.config di folder Views yang mereferensikan System.Web.WebPages.Razor, Version = 2.0.0.0, bukan 3.0.0.0.

Biasanya ini dapat terjadi setelah pemutakhiran paket nuget, yang tidak memperhitungkan folder ini.

Perbarui Views\Web.configfile:

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

untuk informasi lebih lanjut tentang peningkatan ke 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

Maxim Geerinck
sumber
5
itu tidak terdengar seperti perbaikan daripada bekerja untuk saya. beberapa proyek mungkin tergantung pada mvc4 saja
stenly
12
Secara khusus, sepertinya perbaikan untuk kesalahan ini ada di bagian "Perbarui file web.config di bawah folder Views". Tampaknya memperbarui dari MVC4 -> MVC5 dengan NuGet tidak secara otomatis memperbarui nomor versi di Views / Web.config.
Tyler
Terima kasih untuk tautannya! Akan lebih baik jika pembaruan NuGet setidaknya dapat menunjukkan tautan ke halaman itu ...
Jedidja
Saya mengikuti panduan ini dan sekarang saya tidak dapat menjalankan situs saya dalam mode debug - memberi tahu saya "... Proyek dengan tipe keluaran Perpustakaan Kelas tidak dapat dimulai ..."
Matt
2
Bekerja untuk saya, masalah utama saya disebabkan karena saya belum memperbarui versi di web.config di sub-folder Views.
connectedsoftware
13

Mencoba semua metode di atas, dan masalah itu masih belum terpecahkan sampai saya memasukkan baris berikut di web.config langsung di bawah folder proyek.

  <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>
Jian Huang
sumber
3

Jika Anda mendapatkannya dengan Route Debugger maka Anda perlu memperbarui web.config di folder Views di bawah Area untuk Route Debugger.

Luke Puplett
sumber
Penyelamat. Terima kasih.
6footunder
Bisakah Anda menjelaskannya?
Si8
1

Dalam kasus saya, saya telah memecahkan masalah ini dengan memperbarui Web.config pada server langsung yang telah diperbarui VS setelah memutakhirkan ke MVC 5

rajeemcariazo
sumber