[A] System.Web.WebPages.Razor.Configuration.HostSection có thể được chuyển sang vấn đề web.config


158

Tôi nhận được lỗi sau:

[A] System.Web.WebPages.Razor.Configuration.HostSection có thể được chuyển thành [B] System.Web.WebPages.Razor.Configuration.HostSection. Loại A có nguồn gốc từ 'System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = trung tính, PublicKeyToken = 31bf3856ad364e35' trong ngữ cảnh 'Mặc định' tại vị trí 'C: \ WINDOWS \ Microsoft.Net \ assembly \ GAC_MSIL \ System .Web.WebPages.Razor \ v4.0_2.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '. Loại B có nguồn gốc từ 'System.Web.WebPages.Razor, Version = 3.0.0.0, Culture = trung tính, PublicKeyToken = 31bf3856ad364e35' trong ngữ cảnh 'Mặc định' tại vị trí 'C: \ Users \ MyName \ AppData \ Local \ Temp \ Tạm thời Tệp ASP.NET \ root \ 63e7ff36 \ a1cb775d \ assembly \ dl3 \ 8f568c18 \ 9b7ddacf_d04dcf01 \ System.Web.WebPages.Razor.dll '.

Tôi đã tìm kiếm trên stackoverflow cho các vấn đề tương tự và tôi đã sử dụng các giải pháp của họ nhưng dường như nó không khắc phục được sự cố mà tôi đang gặp phải.

Nó đột nhiên xảy ra, tôi chỉ cần nhấn giải pháp sạch và lỗi này xuất hiện. Tôi cũng bắt đầu sử dụng gói nuget trên giải pháp. Tôi cũng đã cập nhật các gói của mình (sử dụng Gói cập nhật) để một trong những gói đó có thể có liên quan đến vấn đề này.

Câu trả lời:


274

Tôi đang sử dụng VS2013, MVC 5.2.2.0, Web Api 2. Tôi vừa thay đổi tất cả các phiên bản từ 2.0.0.0 thành 3.0.0.0 của phần sau của Web.config nằm trong thư mục View của dự án của tôi.

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

Và vấn đề được giải quyết. BINGO !!


7
Điều này đã làm công việc cho tôi. Cảm ơn!
Joseph Woodward

1
Điều này đã giải quyết nó cho tôi. Tôi đang chuyển đổi một ứng dụng webforms sang MVC5.
Ray

1
@guneysus, làm thế nào bạn có thể làm tương đương với câu trả lời của Kuntal mà không cần chỉnh sửa thủ công?
twm

@twm Nói chung Update-Packagecũng chỉnh sửaweb.config
guneysus

Đây là lý do tại sao tôi yêu
Homunculus Reticulli

102

Chỉ cần thêm hai xu của tôi vào vấn đề này.

Tôi thấy rằng nguyên nhân gây ra lỗi này đối với tôi là do các thư mục Lượt xem web.config đã tham chiếu System.Web.WebPages.Razor, Version=2.0.0.0khi mọi thứ khác đang sử dụng3.0.0.0

Có vẻ như nâng cấp gói nuget không chiếm tài khoản này.


1
chính xác hơn! web.config trong thư mục lượt xem.
Rohit Verma

58

Nguyên nhân của lỗi này là web.config trong thư mục Lượt xem tham chiếu System.Web.WebPages.Razor, Version = 2.0.0.0 thay vì 3.0.0.0.

Thông thường, điều này có thể xảy ra sau khi nâng cấp gói nuget, không chiếm tài khoản này.

Cập nhật Views\Web.configtệp:

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

để biết thêm thông tin về việc nâng cấp lên MVC 5 http://www.asp.net/mvc/tutorials/mvc-5/how-to-upTHER-an-aspnet-mvc-4-and-web-api-project-to- aspnet-mvc-5-và-web-api-2


5
nó không giống như một bản sửa lỗi thay vì làm việc với tôi. một số dự án có thể chỉ phụ thuộc vào mvc4
hoàn toàn là

12
Cụ thể, có vẻ như cách khắc phục lỗi này nằm trong phần "Cập nhật tệp web.config trong thư mục Lượt xem". Có vẻ như cập nhật từ MVC4 -> MVC5 với NuGet không tự động cập nhật số phiên bản trong Views / Web.config.
Tyler

Cảm ơn các liên kết! Sẽ thật tuyệt nếu bản cập nhật NuGet ít nhất có thể hiển thị một liên kết đến trang đó ...
Jedidja

Tôi đã làm theo hướng dẫn và bây giờ tôi không thể chạy trang web của mình ở chế độ gỡ lỗi - nói với tôi "... Dự án với loại đầu ra của Thư viện lớp không thể bắt đầu ..."
Matt

2
Làm việc cho tôi, vấn đề chính của tôi là do tôi chưa cập nhật các phiên bản trong web.config trong thư mục con Lượt xem.
kết nối được kết nối vào

13

Đã thử tất cả các phương pháp trên và vấn đề vẫn chưa được giải quyết cho đến khi tôi chèn các dòng sau vào web.config ngay trong thư mục dự án.

  <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

Nếu bạn nhận được điều này với Trình gỡ lỗi tuyến thì bạn cần cập nhật web.config trong thư mục Lượt xem trong Khu vực dành cho Trình gỡ lỗi tuyến.


Phao cứu sinh. Cảm ơn.
6 feetunder

Bạn có thể làm rõ điều đó không?
Si8

1

Trong trường hợp của tôi, tôi đã giải quyết điều này bằng cách cập nhật Web.config trên máy chủ trực tiếp mà VS đã cập nhật khi nâng cấp lên MVC 5

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.