[A] System.Web.WebPages.Razor.Configuration.HostSection ไม่สามารถส่งไปยัง ... ปัญหา web.config


158

ฉันได้รับข้อผิดพลาดต่อไปนี้:

[A] System.Web.WebPages.Razor.Configuration.HostSection ไม่สามารถส่งไปที่ [B] System.Web.WebPages.Razor.Configuration.HostSection Type 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, รุ่น = 3.0.0.0, วัฒนธรรม = เป็นกลาง, PublicKeyToken = 31bf3856ad364e35' ในบริบท 'ค่าเริ่มต้น' ที่ตำแหน่ง 'C: \ Users \ MyName \ AppData \ Local \ Temp \ Temporary ไฟล์ ASP.NET \ root \ 63e7ff36 \ a1cb775d \ assembly \ dl3 \ 8f568c18 \ 9b7ddacf_d04dcf01 \ System.Web.WebPages.Razor.dll '

ฉันได้ค้นหาข้าม stackoverflow สำหรับปัญหาที่คล้ายกันและฉันใช้วิธีแก้ไขปัญหา แต่ดูเหมือนจะไม่สามารถแก้ไขปัญหาที่ฉันพบได้

ทันใดนั้นมันเกิดขึ้นฉันเพิ่งกดโซลูชันที่สะอาดและข้อผิดพลาดนี้โผล่ขึ้นมา ฉันเริ่มใช้แพคเกจ nuget ในการแก้ปัญหา ฉันอัปเดตแพคเกจของฉันด้วย (ใช้ Update-package) ดังนั้นหนึ่งในนั้นอาจมีบางสิ่งที่เกี่ยวข้องกับปัญหานี้

คำตอบ:


274

ฉันใช้ VS2013, MVC 5.2.2.0, Web Api 2 ฉันเพิ่งเปลี่ยนทุกรุ่นจาก2.0.0.0เป็น3.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>

และปัญหาได้รับการแก้ไข บิงโก !!


7
นี่เป็นงานสำหรับฉัน ขอบคุณ!
โจเซฟวู้ดเวิร์ด

1
วิธีนี้แก้ไขได้สำหรับฉัน ฉันกำลังแปลงแอพ webforms เป็น MVC5
เรย์

1
@guneysus คุณจะทำอย่างไรคำตอบของ Kuntal โดยไม่ต้องแก้ไขด้วยตนเอง?
twm

@twm Update-Packageแก้ไขโดยทั่วไปเช่นกันweb.config
guneysus

นี่คือเหตุผลที่ฉันรักมาก!
Homunculus Reticulli

102

เพียงแค่เพิ่มสองเซ็นต์ของฉันไปที่ปัญหานี้

ฉันพบว่าสาเหตุของข้อผิดพลาดนี้สำหรับฉันคือการที่โฟลเดอร์ Views web.config อ้างอิง System.Web.WebPages.Razor, Version=2.0.0.0เมื่อทุกอย่างใช้อยู่3.0.0.0

ดูเหมือนว่าการอัปเกรดแพ็กเกจ nuget ไม่ได้มีผลกับโฟลเดอร์นี้ แต่อย่างใด


1
มันแม่นยำมากขึ้น! web.config ในโฟลเดอร์มุมมอง
Rohit Verma

58

สาเหตุของข้อผิดพลาดนี้คือ web.config ในโฟลเดอร์ Views อ้างอิง System.Web.WebPages.Razor, Version = 2.0.0.0 แทนที่จะเป็น 3.0.0.0

โดยทั่วไปสิ่งนี้สามารถเกิดขึ้นได้หลังจากการอัพเกรดแพ็คเกจแพคเกจซึ่งไม่ได้บัญชีสำหรับโฟลเดอร์นี้

อัปเดต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 และเว็บ API-2


5
ดูเหมือนว่าการแก้ไขจะไม่เหมาะกับฉัน บางโครงการอาจขึ้นอยู่กับ mvc4 เท่านั้น
stenly

12
โดยเฉพาะอย่างยิ่งดูเหมือนว่าการแก้ไขข้อผิดพลาดนี้จะอยู่ในส่วน "อัปเดตไฟล์ web.config ภายใต้โฟลเดอร์ Views" ดูเหมือนว่าการอัปเดตจาก MVC4 -> MVC5 ด้วย NuGet จะไม่อัปเดตหมายเลขเวอร์ชันใน Views / Web.config โดยอัตโนมัติ
ไทเลอร์

ขอบคุณสำหรับลิงค์! มันคงจะดีถ้าการอัพเดท NuGet อาจแสดงลิงค์ไปยังหน้านั้นอย่างน้อย ...
Jedidja

ฉันทำตามคำแนะนำแล้วและตอนนี้ฉันไม่สามารถเปิดเว็บไซต์ของฉันในโหมดแก้ไขข้อผิดพลาด - บอกฉันว่า "... โครงการที่มีประเภทเอาต์พุตของ Class Library ไม่สามารถเริ่ม ... "
Matt

2
ทำงานได้สำหรับฉันปัญหาหลักของฉันเกิดขึ้นเพราะฉันไม่ได้อัปเดตเวอร์ชันใน web.config ในโฟลเดอร์ย่อย Views
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>

3

หากคุณได้รับสิ่งนี้ด้วย Route Debugger คุณต้องอัปเดต web.config ในโฟลเดอร์ Views ภายใต้ Area สำหรับ Route Debugger


ผู้ช่วยชีวิต ขอบคุณ
6footunder

คุณช่วยอธิบายได้ไหม
Si8

1

ในกรณีของฉันฉันได้แก้ไขปัญหานี้ด้วยการอัปเดตWeb.configบนเซิร์ฟเวอร์สดที่ VS ได้อัปเดตเมื่ออัปเกรดเป็น MVC 5

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.