Estou com um problema como este no servidor
[A] System.Web.WebPages.Razor.Configuration.HostSection não pode ser convertido em [B] System.Web.WebPages.Razor.Configuration.HostSection. O Tipo A se origina de 'System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' no contexto 'Padrão' no local 'C: \ Windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System .Web.WebPages.Razor \ v4.0_2.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '. O tipo B é originado de 'System.Web.WebPages.Razor, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' no contexto 'Padrão' no local 'C: \ Windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System .Web.WebPages.Razor \ v4.0_1.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '.
Descrição: Ocorreu uma exceção não tratada durante a execução da solicitação da web atual. Revise o rastreamento de pilha para obter mais informações sobre o erro e onde ele se originou no código.
Detalhes da exceção: System.InvalidCastException: [A] System.Web.WebPages.Razor.Configuration.HostSection não pode ser convertido em [B] System.Web.WebPages.Razor.Configuration.HostSection. O Tipo A se origina de 'System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' no contexto 'Padrão' no local 'C: \ Windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System .Web.WebPages.Razor \ v4.0_2.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '. O tipo B é originado de 'System.Web.WebPages.Razor, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' no contexto 'Padrão' no local 'C: \ Windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System .Web.WebPages.Razor \ v4.0_1.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '.
Erro de fonte:
Instalei o MVC 3 no seridor e no meu computador. Tentei substituí-lo por uma base de código de 15 dias, mas existe o mesmo problema.
agora eu quero resolver isso. Alguém sabe como posso consertar.
fonte
Respostas:
No Web.config raiz, certifique-se de que assemblyBinding contém a versão adequada para o assembly "System.Web.WebPages.Razor" e "System.Web.Mvc". Verifique sua existência real, bem como minha tag de montagem "System.Web.WebPages.Razor" estava faltando causando o erro. Eu tinha minhas versões de montagem definidas para 3.0 e 5.0 respectivamente no momento em que este artigo foi escrito com atualizações completas do NuGet. O código deve ser semelhante a abaixo. O publicKeyToken permanecerá o mesmo entre as versões. Felicidades!
fonte
Meu caso estava atualizando de mvc4 para mvc5.
Certifiquei-me de que minhas referências estavam sincronizadas (com um aplicativo mvc5 recém-criado), atualizei o arquivo web.config de acordo e ainda não funcionou. Finalmente funcionou quando mudei meu arquivo web.config ( dentro do diretório VIEWS ) de:
Para isso:
LEMBRE-SE: pare o iis (expresso ou nativo), limpe a solução, crie e execute.
fonte
Para o caso de a resposta de ian não ter sido suficiente (e as montagens corretas, mas a fundição ainda está errada), é provável que você ainda não tenha atualizado o
<configSections>
para refletir a nova montagem. certifique-se de que a parte da montagem também faz referência à versão 3.0 daSystem.Web.WebPages.Razor
biblioteca. por exemplo(Observe que todos eles fazem referência
version=3.0.0
agora)fonte
A solução de Ian funcionou em um projeto, mas para outros eu preciso de informações mais completas em How to Upgrade to MVC 5 and Web API 2
fonte
Esse problema é muito comum quando você está desenvolvendo para MVC 4 e, de repente, instala um pacote que está disponível em uma versão mais recente, que quebra o aplicativo inteiro.
A única solução para esse problema é atualizar todo o seu aplicativo para um mais novo ou instalar o pacote antigo compatível com o seu aplicativo
fonte
Problema:
Identificação:
O erro está no arquivo de configuração, ou seja, web.config do seu projeto.
Aqui você descobrirá que a versão do Razor está configurada para 2.0.0.0 onde, como no seu projeto, a versão 2.0.0.0 não está disponível.
Solução:
É simples, basta alterar a versão 2.0.0.0 para 3.0.0.0 e fará a mágica.
Você não precisa colocar redirecionamento ou então, pois isso tornará as coisas complicadas.
fonte
Encontrei um problema e solução.
1 Eu direciono meu código para 4.0 e, em seguida, carrego o código e está funcionando. Antes disso, também atualizo meu código para asp.net MVC 4.
agora é trabalho :)
fonte
Abra a localização dos dois arquivos dll em seu sistema, copie uma das dll em seu local de arquivo para o outro
e tente executar o projeto.
fonte
Outra maneira de corrigir isso, sem ter que atualizar as referências, é esta
fonte