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


158

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

[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 패키지 복원을 사용하기 시작했습니다. 업데이트 패키지를 사용하여 패키지도 업데이트 했으므로 그중 하나 가이 문제와 관련이있을 수 있습니다.

답변:


274

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>

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


7
이것은 나를 위해 일을했습니다. 감사!
Joseph Woodward

1
이것은 나를 위해 해결했습니다. webforms 앱을 MVC5로 변환하고 있습니다.
Ray

1
@ guneysus, 수동 편집없이 Kuntal의 답변과 어떻게 동일합니까?
twm

@twm 일반적으로 Update-Package편집web.config
guneysus

이것이 내가 그렇게 사랑하는 이유입니다!
Homunculus Reticulli

102

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

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

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


1
더 정확한! views 폴더의 web.config.
Rohit Verma

58

이 오류의 원인은 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


5
그것은 픽스처럼 들리지 않고 오히려 내 주변에서 해결됩니다. 일부 프로젝트는 mvc4에만 의존 할 수 있습니다
stenly

12
특히이 오류에 대한 수정은 "Views 폴더 아래의 web.config 파일 업데이트"섹션에 있습니다. NuGet으로 MVC4-> MVC5에서 업데이트하면 Views / Web.config의 버전 번호가 자동으로 업데이트되지 않습니다.
타일러

링크 주셔서 감사합니다! NuGet 업데이트가 최소한 해당 페이지에 대한 링크를 표시 할 수 있다면 좋을 것입니다 ...
Jedidja

가이드를 따라 가서 디버그 모드에서 사이트를 실행할 수 없습니다. "... 클래스 라이브러리의 출력 유형을 가진 프로젝트를 시작할 수 없습니다 ..."
Matt

2
나를 위해 일한 것은 주요 하위 문제는 Views 하위 폴더의 web.config에서 버전을 업데이트하지 않았기 때문입니다.
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

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


생명의 은인. 감사.
6footunder

당신은 그것을 명확히 할 수 있습니까?
Si8

1

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.