Mensagem de erro do analisador: Não foi possível carregar o tipo 'TestMvcApplication.MvcApplication'

152

Estou recebendo o seguinte erro em um de nossos servidores de produção. Não sabe por que está funcionando no servidor DEV?

Descrição do erro do analisador : ocorreu um erro durante a análise de um recurso necessário para atender a essa solicitação. Revise os seguintes detalhes específicos do erro de análise e modifique seu arquivo de origem adequadamente.

Mensagem de erro do analisador : Não foi possível carregar o tipo 'TestMvcApplication.MvcApplication'.

Erro de origem :

Linha 1: <% @ Application Codebehind = "Global.asax.cs" Inherits = "TestMvcApplication.MvcApplication" Language = "C #"%>

Arquivo de origem: /global.asax Linha: 1

Não tenho certeza se alguém já se deparou com esse erro antes e como foi resolvido, mas cheguei ao fim. Qualquer ajuda seria apreciada.

Também preciso mencionar que esse é o código publicado, para que tudo seja compilado. Pode haver algo errado com as configurações do meu compilador?

Riaan Engelbrecht
fonte
possível duplicata não foi possível carregar tipo MvcApplication
Alexander Prokofyev
15
Saia do Visual Studio e reinicie-o para mim.
RickAndMSFT
exclua o arquivo global.asax e adicione um novo, e você ficará bem.
DotNetGeek
Isso aconteceu comigo ao implantar um aplicativo que funcionava anteriormente. Algo no IIS (7) entrou em um estado ruim; redefinir o IIS corrigiu o problema.
BurnsBA

Respostas:

169

Nenhuma das outras respostas funcionou para mim. Corrigi o meu erro alterando o caminho de saída do projeto da web. Eu tinha definido para bin \ debug, mas o projeto da web não funciona, a menos que o caminho de saída esteja definido como simplesmente "bin"

Brian Leeming
fonte
Este foi o meu problema, me causou tanta dor, porque nenhuma das outras soluções aqui trabalharam para mim ..
Zack
3
+1 Este também foi o meu problema. A mensagem de erro e a ajuda sobre isso são basicamente inexistentes. Obrigado.
Noldorin
4
Para mim, bin \ estava dando erro, mudei para bin apenas. e funcionou.
Nanu
1
Para mim, o problema era que eu acidentalmente selecionei x86 como plataforma ativa e, para essa configuração, as configurações do projeto estavam erradas (Bin \ Debug \ x86). Mudar de volta para Qualquer CPU corrigiu o problema. Mas mudar o caminho da saída também funcionou.
Lars Udengaard
13
Portanto, alterar o caminho de saída de bin \ Debug \ para bin remove o erro para mim. Mas a verdadeira questão é: "Por que o bin \ Debug não funciona em primeiro lugar?" Quando crio uma configuração de Depuração ou Liberação, desejo que os arquivos sejam gerados no diretório bin apropriado.
21415 Ellesedil
96

Eu já tive isso algumas vezes. É especialmente frustrante, pois é logo de cara, e a mensagem de erro não tem idéia do que pode ser o problema.

Para corrigir isso, clique com o botão direito do mouse no título do projeto, neste caso "TestMvcApplication" e clique em criar .

Isso força o código a compilar antes de executá-lo. Não me pergunte por que, mas essa tem sido a solução 100% do tempo para mim.

Andy Copley
fonte
4
+1 eu também. E eu tentei várias coisas e, com "coisas", quero dizer "suposições". Boa resposta!
Bob Kaufman
No meu caso, eu tinha o IIS apontando para um site MVC que não havia sido criado antes. Doh. Obviamente, construir isso consertava isso.
Edgar
5
Também recebi esse erro ao alterar o nome do projeto, mas esqueci de alterar o espaço para nome que o global.asax.cs estava usando.
Caro
1
Você é um cavalheiro e um senhor, nem sequer pensou em fazer uma construção sobre isso. Obrigado!
Ben Preto
2
No meu caso o meu projeto não foi criado para construir nas propriedades de configuração da solução, por algum motivo: i.imgur.com/kp73sGQ.png
Matthew Bloqueio
24

Descobri que quando você é forçado a usar o Gerenciador de Configurações para executar em x86 ou qualquer coisa que não seja as configurações padrão "prontas para uso" do projeto, o IDE cria vários subdiretórios na pasta bin do projeto da web.

Quando isso começar a acontecer, se o servidor Cassini estiver em execução, o projeto não funcionará corretamente.

Corrigi-o, acessando as propriedades do Projeto Web -> Configurações de compilação e alterando o Caminho de saída para bin \

Em seguida, reconstrua e tudo funcione como deveria.

DamoDBear
fonte
Bingo, esta é a solução que funcionou para mim também. Obrigado!
Moshjeier
Funcionou para mim também - isso não é um bug?
Matt Wilko
E verifique se a caixa está marcada para construção
Daniel Bişar
Se você está sempre em Ohio HMU porque eu estou comprando-lhe 10 cervejas, estado a olhar para diferentes sugestões para mais de 3 horas
Andrew Tarde-Delight Hayde
9

Depois de uma longa análise, deparei-me com a questão real aqui.

Os assemblies foram corrompidos pelo cliente FTP que eu usei para carregar os arquivos em um ambiente hospedado.

Mudei meu cliente FTP e tudo está funcionando conforme o esperado.

Riaan Engelbrecht
fonte
9

Eu tinha o mesmo problema: o meu era porque o projeto da web tinha um destino de plataforma x86. Eu estava executando em uma máquina de 64 bits; outros projetos na solução foram definidos para 64 bits.

Para verificar suas configurações, clique com o botão direito do mouse no projeto e escolha Propriedades. Na guia Compilar, verifique o valor de "Destino da plataforma".

Verifique também a configuração da versão da sua solução (menu Build> Configuration Manager) para verificar se todos os seus projetos estão sendo criados na mesma plataforma.

Nos dois casos, verifique as configurações para o modo de depuração e liberação - caso contrário, você a trabalhará em sua máquina, mas não quando a implantar!

teedyay
fonte
Eu era obrigado a combinar esta resposta com a resposta de @brockstaylor abaixo para resolver este problema em Umbraco 7.1.6
devinbost
9

Eu tentei todas as soluções acima, mas sem sorte. A adição de linha <add assembly="*" />ao web.config foi corrigida para mim. (Você também pode adicionar ao arquivo machine.config ou root web.config da versão apropriada do .NET framework, eu não tentei). Graças ao suporte da Microsoft para solução.

Manish Jain
fonte
Este foi o meu problema. Eu tive <assemblies><clear/>...que impedir a herança de referências de assembly do aplicativo pai em um aplicativo IIS aninhado.
Craig Celeste
Eu nunca precisei disso ... então, do nada, encontrei esse problema em uma das minhas máquinas de desenvolvimento. Não sei porque isso começou, mas esta é a única coisa que resolveu
Pascal
9

Eu tive o que parecia o mesmo erro. Tentei muitas sugestões de várias páginas apenas para descobrir o problema: o site estava definido com a versão errada do .Net

Não importa quantas recompilações ou pessoas dizendo 'problema de configuração', ninguém afirmou que a versão .net precisava ser verificada.

Carl Wright
fonte
8

Isso acontece comigo quando eu renomeio meu projeto / solução. Vá para a pasta do projeto no Windows Explorer (saia do VS). Localize e abra o arquivo Global (talvez você encontre 2 arquivos, abra o que não possui a extensão ".asax.cs") e edite a linha de erro com o caminho correto. Boa sorte!

Paulo
fonte
Essa é uma ótima resposta, deve ser mais votada - a renomeação de aplicativos acontece e esses erros são irritantes!
Bartosz
7

Eu experimentei exatamente o mesmo problema há alguns dias - pelo que sei, era um problema com um IIS de 64 bits executando um aplicativo da web de 32 bits. Alteramos nosso servidor de produção para 32 bits e esse problema desapareceu.

Jaco Pretorius
fonte
5

Verifique se o espaço para nome padrão nas propriedades do projeto da web é igual ao espaço para nome no Global.asax.cs. Eu havia modificado o espaço de nome padrão para transformá-lo em um subnome de espaço, alterando-o novamente, corrigindo esse problema para mim.

Ace Hyzer
fonte
4

Para completar, incluí qual era o meu problema e como o resolvi:

Se você gosta de mim e tem httphandlers via web.config e você tem redirecionamentos do seu global.asax.cs (talvez em Session_Start ()), como no meu caso, você recebe esse erro se o seu projeto de inicialização não tiver uma referência definida que aponte para o destino para onde o seu manipulador http está apontando! (mas você não receberá erros de construção, apenas erros de tempo de execução)

Assim:

  1. Verifique seu web.config em busca de itens externos
  2. Verifique novamente se o seu projeto de inicialização tem todas as referências necessárias.

Felicidades.

Chris
fonte
Eu adicionei um controle do Ajax Toolkit, mas não a referência à DLL. Obrigado pelo seu # 2.
pixelmeow
4

A única vez que experimentei isso foi quando a estrutura MVC não estava instalada no servidor. Pode ser este o caso?

Uma seção Pages ausente em Views \ Web.config também pode estar com defeito.

Daniel Elliott
fonte
Não tenho certeza, é um servidor hospedado e, de acordo com eles, o ASP .NET MVC está funcionando bem.
Riaan Engelbrecht
Encontrei outra pessoa (com o tio Google) que experimentou um erro semelhante por um motivo diferente. Adicionado link para responder. Boa sorte!
22411 Daniel Elliott
3

Eu tive o mesmo erro e nenhuma das suas soluções ajudou. Acho que meu problema era simplesmente o nome que eu havia escolhido para o projeto. Chamei meu projeto de 'interface' que, quando recebi o erro de análise, dizia que não era possível carregar:

Linha 1: <% @ Application Codebehind = "Global.asax.cs" Inherits = " @interface .MvcApplication" Language = "C #"%>

Onde havia um sinal '@' por algum motivo. Acho que a palavra 'interface' está reservada para outra coisa e acrescentou o símbolo @, mas que obviamente quebrou alguma coisa. Excluí o projeto e fiz um novo com um nome diferente, sem problemas.

Matt
fonte
3

Aqui está mais um:

  1. Eu estava trabalhando em um projeto de API da Web que usava localhost: 12345.
  2. Fiz check-out de uma ramificação diferente do controle de origem que contém o mesmo projeto.
  3. Eu executei o projeto na filial e recebi o erro.
  4. Eu fui para "Propriedades> Web> URL do projeto" e cliquei em "Criar diretório virtual"
  5. Surgiu uma caixa de diálogo informando que o URL foi mapeado para um diretório diferente (o diretório do projeto original).
  6. Cliquei em OK e o diretório virtual foi remapeado.
  7. O erro foi embora.

Espero que ajude alguém em algum lugar :)

Grahamesd
fonte
que realmente fez isso por mim!
ra170
2

Eu tinha muitos problemas e erros para resolver, algumas das respostas acima ajudaram, mas qual foi o truque final que funcionou para mim: Vá para o seu projeto, clique em Propriedades.

Vá para a guia Package / Publish Web e verifique se a configuração está definida como Release e Platform to All Platforms.

Por último, verifique se "Itens a serem implantados (aplica-se a todos os métodos de implantação)" está definido como "Todos os arquivos nesta pasta do projeto"

Então funcionou bem para mim.

Emiel Haeghebaert
fonte
2

Esse problema é complicado porque é fácil confundir a causa raiz com a causa imediata.

No meu caso, a causa imediata foi que a solução está configurada para usar o NuGet Package Restore, mas o servidor não estava conectado à Internet; portanto, o NuGet não conseguiu baixar as dependências ao criar pela primeira vez.

Acredito que a causa raiz é simplesmente que a solução não consegue resolver as dependências corretamente. Pode ser uma configuração de caminho incorreta, ou a versão incorreta de um assembly, ou assemblies conflitantes, ou uma implantação parcial. Mas em todos os casos, o erro é simplesmente dizer que não consegue encontrar o tipo especificado em global.asax porque não pode construí-lo.

shovavnik
fonte
2

Verifique se o espaço para nome no Global.asaxarquivo corresponde ao do Global.csarquivo, ou seja,

Global.asax: Some.Website.Webapplication

Global.cs: Some.Website(menos o 'WebApplication')

TheDaveJay
fonte
2

Tentei a maioria das respostas acima e elas não funcionaram. Por alguma razão, apenas fechar e reabrir o VS resolveu o problema para mim.

Rochelle C
fonte
2

Meu problema foi resolvido quando converti no IIS a pasta física que continha os arquivos em um aplicativo. Clique com o botão direito do mouse> converter em aplicativo.

jayt.dev
fonte
1

Para mim, foi porque eu havia excluído temporariamente o arquivo do projeto. Apenas o incluí no projeto e funcionou.

mstechnewbie
fonte
O meu também, o arquivo de solução teve alguns arquivos removidos e eu não percebi até que eu fechado e reaberto Visual Studio
Fiona - myaccessible.website
1

No meu caso, referência de System.Web.MVC estava ausente do meu projeto. Mas depois de adicionar o problema de referências, foi o mesmo, então verifiquei as propriedades da minha pasta Bin e era ReadOnly. Logo após torná-lo gravável, tudo está funcionando bem.

yashpal
fonte
1

Eu estava recebendo erro porque implantei o aplicativo como um diretório virtual e estava recebendo o erro do analisador "não foi possível carregar o tipo"; em seguida, implantei o aplicativo como um site e não estava recebendo esse erro novamente.

Riaz
fonte
0

Nenhuma das outras respostas resolveu esse erro para mim.
Eu encontrei uma solução que funcionou, que eu sugiro para aqueles na mesma situação:

  1. Feche o Visual Studio
  2. Vá para Projects \ yourProject \ yourProject
  3. Renomeie Web.Debug.config e Web.Release.config
  4. Reconstrua e execute seu aplicativo
Charles Burns
fonte
Excluídos estes ... e agora eles não reaparecem.
FiringSquadWitness
0

Eu realmente nunca cheguei ao fundo do que estava causando isso para mim. Eu acho que em algum lugar eu devo ter perdido alguns arquivos. Eu recebi o erro depois de publicar em um novo servidor. Eventualmente, copiei o site do site de trabalho. Em seguida, o site funcionou e, posteriormente, publicou no novo servidor.

Giles Roberts
fonte
0

Siga esses passos:

  1. Construir
  2. Gerenciador de configuração
  3. Coloque o projeto AnyCPU
  4. Voltar para gerar
  5. Pronto, basta seguir os mesmos passos para passar para x86 ou x64
Ragdare
fonte
0

Para mim, eu tinha uma DLL incluída no meu projeto que precisava ser executada em um ambiente de 32 bits.

O servidor foi configurado para executar o site no modo de 32 bits, mas não foi possível executar o aplicativo na minha máquina de 64 bits porque a localhostpasta não foi especificada para ser executada no modo de 32 bits.

jp2code
fonte
0

Eu apenas tive um problema semelhante.

O motivo foi que eu estava alterando um arquivo.aspx.c e tive que fazer uma reconstrução limpa. Depois disso tudo funcionou.

Fannar Örn Hermannsson
fonte
0

Meu problema era que eu estava tentando criar um aplicativo Web ASPX em uma subpasta de uma pasta que já tinha um arquivo web.config e

Por isso, abri a pasta pai no Visual Studio como um site (Abrir> Site). Pude adicionar um novo item de página ASPX que não apresentava problemas de análise / carregamento.

jamespgilbert
fonte
0

Para mim, o problema estava apenas em determinados links (longos) do site e foi rastreado para o URLScan com a configuração padrão de um limite de URL de 260.

James
fonte
0

Eu tive o mesmo problema. Tente:

Clique com o botão direito do mouse no projeto e selecione Limpar, depois clique com o botão direito do mouse novamente e selecione Reconstruir e executar o projeto para ver se funcionou.

da Rocha Pires
fonte