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

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


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.


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


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>

3

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


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.