[C#] [A] System.Web.WebPages.Razor.Configuration.HostSection을 다음으로 캐스트 할 수 없습니다… web.config 문제

다음과 같은 오류가 발생합니다.

[A] System.Web.WebPages.Razor.Configuration.HostSection을 [B] System.Web.WebPages.Razor.Configuration.HostSection으로 캐스트 할 수 없습니다. 유형 A는 위치 ‘C : \ WINDOWS \ Microsoft.Net \ assembly \ GAC_MSIL \ System에있는’Default ‘컨텍스트의’System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 ‘에서 시작합니다. .Web.WebPages.Razor \ v4.0_2.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll ‘. 유형 B는 위치 ‘C : \ Users \ MyName \ AppData \ Local \ Temp \ Temporary에있는’Default ‘컨텍스트의’System.Web.WebPages.Razor, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 ‘에서 시작합니다. ASP.NET 파일 \ root \ 63e7ff36 \ a1cb775d \ assembly \ dl3 \ 8f568c18 \ 9b7ddacf_d04dcf01 \ System.Web.WebPages.Razor.dll ‘.

비슷한 문제에 대해 stackoverflow를 검색했지만 해당 솔루션을 사용했지만 발생한 문제를 해결하지 못하는 것 같습니다.

갑자기 깨끗한 솔루션을 눌렀을 때이 오류가 발생했습니다. 또한 솔루션에서 nuget 패키지 복원을 사용하기 시작했습니다. 업데이트 패키지를 사용하여 패키지도 업데이트 했으므로 그중 하나 가이 문제와 관련이있을 수 있습니다.



답변

VS2013, MVC 5.2.2.0, Web Api 2를 사용하고 있습니다. Web.config 의 다음 섹션의 모든 버전을 2.0.0.0 에서 3.0.0.0 으로 변경했습니다 . 프로젝트 의 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>

그리고 문제가 해결됩니다. 빙고 !!


답변

이 문제에 2 센트 만 추가하면됩니다.

나는이 오류의 원인이 다른 모든 것을 사용할 때 Views 폴더 web.config가 참조 하고 있다는 것을 알았습니다.System.Web.WebPages.Razor, Version=2.0.0.03.0.0.0

너겟 패키지 업그레이드가 어떻게 든이 폴더를 설명하지 않은 것 같습니다.


답변

이 오류의 원인은 3.0.0.0 대신 System.Web.WebPages.Razor, Version = 2.0.0.0을 참조하는 Views 폴더의 web.config입니다.

일반적으로이 폴더를 설명하지 않는 너겟 패키지 업그레이드 후에 발생할 수 있습니다.

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


답변

위의 모든 방법을 시도했지만 프로젝트 폴더 바로 아래에 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>


답변

경로 디버거를 사용하여이를 얻는 경우 경로 디버거 영역 아래의보기 폴더에서 web.config를 업데이트해야합니다.


답변

필자의 경우 MVC 5로 업그레이드 할 때 VS가 업데이트 한 라이브 서버 에서 Web.config 를 업데이트 하여이 문제를 해결했습니다.


답변