Mensaje de error del analizador: no se pudo cargar el tipo 'TestMvcApplication.MvcApplication'

152

Recibo el siguiente error en uno de nuestros servidores de producción. ¿No está seguro de por qué funciona en el servidor DEV?

Descripción del error del analizador : se produjo un error durante el análisis de un recurso requerido para atender esta solicitud. Revise los siguientes detalles específicos de error de análisis y modifique su archivo fuente de manera adecuada.

Mensaje de error del analizador : no se pudo cargar el tipo 'TestMvcApplication.MvcApplication'.

Error de fuente :

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

Archivo de origen: /global.asax Línea: 1

No estoy seguro si alguien se encontró con este error antes y cómo se resolvió, pero he llegado al final. Cualquier ayuda sería apreciada.

También necesito mencionar que este es el código publicado, por lo que todo está compilado. ¿Puede haber algo mal con la configuración de mi compilador?

Riaan Engelbrecht
fuente
posible duplicado de No se pudo cargar el tipo Aplicación Mvc
Alexander Prokofyev
15
Salir de Visual Studio y reiniciar me lo arregló.
RickAndMSFT
elimine el archivo global.asax y agregue uno nuevo, y estará bien.
DotNetGeek
Esto me sucedió al implementar una aplicación que funcionaba anteriormente. Algo en IIS (7) entró en mal estado; reiniciar IIS solucionó el problema.
BurnsBA

Respuestas:

169

Ninguna de las otras respuestas funcionó para mí. Solucioné mi error cambiando la ruta de salida del proyecto web. Lo había configurado en bin \ debug pero el proyecto web no funciona a menos que la ruta de salida esté configurada simplemente en "bin"

Brian Leeming
fuente
Esta era mi problema, me causó tanto dolor, porque ninguna de las otras soluciones aquí trabajado para mí ..
Zack
3
+1 Este también fue mi problema. El mensaje de error y la ayuda sobre esto son básicamente inexistentes. Gracias.
Noldorin
44
Para mí, bin \ estaba dando un error, lo cambié a bin solo. Y funcionó.
Nanu
1
Para mí, el problema era que había seleccionado accidentalmente x86 como plataforma activa, y para esta configuración la configuración del proyecto era incorrecta (Bin \ Debug \ x86). Cambiar de nuevo a cualquier CPU solucionó el problema. Pero cambiar la ruta de salida también funcionó.
Lars Udengaard
13
Entonces, cambiar la ruta de salida de bin \ Debug \ a bin elimina el error para mí. Pero la verdadera pregunta es: "¿Por qué bin \ Debug no funciona en primer lugar?" Cuando construyo una configuración de depuración o lanzamiento, quiero que los archivos se generen en el directorio bin apropiado.
Ellesedil
96

He tenido esto un par de veces. Es especialmente frustrante, ya que está listo, y el mensaje de error no tiene idea de cuál podría ser el problema.

Para solucionar esto, haga clic derecho en el título del proyecto, en este caso "TestMvcApplication" y haga clic en construir .

Esto obliga al código a compilarse antes de ejecutarlo. No me preguntes por qué, pero esta ha sido la solución el 100% del tiempo para mí.

Andy Copley
fuente
44
+1 Yo también. Y he intentado varias cosas, y por "cosas" me refiero a "conjeturas salvajes". ¡Buena respuesta!
Bob Kaufman el
En mi caso, tenía IIS apuntando a un sitio MVC que no se había construido antes. Doh Obviamente, construirlo solucionó eso.
Edgar
55
También recibí este error al cambiar el nombre del proyecto, pero olvidé cambiar el espacio de nombres que estaba usando global.asax.cs.
Caro
1
Eres un caballero y un señor, ni siquiera pensé en construirlo. ¡Gracias!
Ben Black
2
En mi caso, mi proyecto no estaba configurado para compilarse en las Propiedades de configuración de la solución por alguna razón: i.imgur.com/kp73sGQ.png
Matthew Lock
24

He descubierto que cuando se ve obligado a usar el Administrador de configuración para ejecutarlo bajo x86 o cualquier otra cosa que no sea la configuración estándar "lista para usar" del proyecto, el IDE crea un grupo de subdirectorios debajo de la carpeta bin para el proyecto web.

Una vez que esto comienza a suceder, si el servidor Cassini se está ejecutando, el proyecto no funciona correctamente.

Lo arreglé yendo a las propiedades del Proyecto web -> Configuración de compilación y cambiando la Ruta de salida para que sea bin \

Luego reconstruir y todo funciona como debería.

DamoDBear
fuente
Bingo, esta es la solución que también funcionó para mí. ¡Gracias!
moshjeier
También funcionó para mí, ¿no es esto un error?
Matt Wilko
Y verifique si CheckBox está marcado para la compilación
Daniel Bişar
Si alguna vez estás en Ohio hmu porque te estoy comprando 10 cervezas, he estado buscando diferentes sugerencias durante más de 3 horas
Andrew Afternoon-Delight Hayde
9

Después de una larga mirada, me encontré con el verdadero problema aquí.

Los ensamblados fueron dañados por el cliente FTP que utilicé para cargar los archivos en un entorno alojado.

Cambié mi cliente FTP y todo funciona según lo previsto.

Riaan Engelbrecht
fuente
9

Tuve el mismo problema: el mío fue porque el proyecto web tenía un objetivo de plataforma de x86. Estaba corriendo en una máquina de 64 bits; otros proyectos en la solución se establecieron en 64 bits.

Para verificar su configuración, haga clic derecho en el proyecto y elija Propiedades. En la pestaña Build, verifique el valor de "Platform Target".

También verifique la configuración de compilación de su solución (Menú de compilación> Administrador de configuración) para verificar que todos sus proyectos se están construyendo en la misma plataforma.

En ambos casos, asegúrese de verificar la configuración tanto para el modo de depuración como de liberación; de lo contrario, lo hará funcionar en su máquina, ¡pero no cuando la implemente!

teedyay
fuente
Se me pidió que combinara esta respuesta con la respuesta de @brockstaylor a continuación para resolver este problema en Umbraco 7.1.6
devinbost el
9

Intenté todas las soluciones anteriores pero no tuve suerte. Agregar línea <add assembly="*" />a web.config lo arregló para mí. (También puede agregarlo al archivo machine.config o root web.config de la versión adecuada de .NET Framework, no lo probé) Gracias a MS Support por la solución.

Manish Jain
fuente
Este fue mi problema. Tuve <assemblies><clear/>...que evitar heredar referencias de ensamblado de la aplicación principal en una aplicación IIS anidada.
Craig Celeste
Nunca necesité esto ... que, de la nada, me encontré con este problema en una de mis máquinas de desarrollo. No sé por qué comenzó, pero esto es lo único que lo resolvió
Pascal
9

Tuve lo que parecía el mismo error. Intenté muchas sugerencias de muchas páginas solo para descubrir que el problema era que tenía el sitio web configurado con la versión incorrecta de .Net

No importa cuántas recompilaciones o personas que digan 'problema de configuración', nadie destacó que la versión .net necesitaba ser verificada.

Carl Wright
fuente
8

Sucede conmigo cuando cambio el nombre de mi proyecto / solución. Vaya a la carpeta del proyecto en Windows Explorer (salga de VS). Busque y abra el archivo Global (tal vez encuentre 2 archivos, abra que no tengan la extensión ".asax.cs") y edite la línea de error con la ruta correcta. ¡Buena suerte!

Paulo
fuente
Esa es una gran respuesta, debería ser votada más: ¡el cambio de nombre de la aplicación ocurre y tales errores son molestos!
Bartosz
7

Experimenté exactamente el mismo problema hace un par de días, por lo que puedo decir, fue un problema con un IIS de 64 bits que ejecuta una aplicación web de 32 bits. Cambiamos nuestro servidor de producción a 32 bits y este problema desapareció.

Jaco Pretorius
fuente
5

Asegúrese de que su espacio de nombres predeterminado en las propiedades del proyecto web sea el mismo que el espacio de nombres en Global.asax.cs. Modifiqué el espacio de nombres predeterminado para convertirlo en un espacio de subnombres, cambiarlo nuevamente solucionó este problema para mí.

Ace Hyzer
fuente
4

Para completar, incluí cuál era mi problema y cómo lo resolví:

Si te gusto y tienes httphandlers a través de web.config y tienes redirecciones desde tu global.asax.cs (tal vez en Session_Start ()) como en mi caso, obtienes este error si tu proyecto de inicio no tiene una referencia definida que apunta a ¡el objetivo al que apunta tu httphandler! (pero no obtendrá errores de compilación, solo errores de tiempo de ejecución)

Entonces:

  1. Revise su web.config para ver si hay elementos externos
  2. Verifique que su proyecto de inicio tenga todas las referencias que necesita.

Salud.

Chris
fuente
Había agregado un control Ajax Toolkit pero no había agregado la referencia a la DLL. Gracias por tu # 2.
pixelmeow
4

La única vez que experimenté esto fue cuando el marco MVC no estaba instalado en el servidor. ¿Podría ser ese el caso?

Una sección de páginas faltantes en Views \ Web.config también podría tener la culpa.

Daniel Elliott
fuente
No estoy seguro, es un servidor alojado y, según ellos, ASP .NET MVC funciona bien.
Riaan Engelbrecht
Encontré a otra persona (con el tío Google) que experimentó un error similar por una razón diferente. Enlace agregado para responder. ¡Buena suerte!
Daniel Elliott
3

Tuve el mismo error y ninguna de sus soluciones ayudó. Creo que mi problema era simplemente el nombre que había elegido para el proyecto. Había llamado a mi proyecto 'interfaz' que, cuando recibí el error de análisis, decía que no se podía cargar:

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

Donde había un signo '@' por alguna razón. Supongo que la palabra 'interfaz' está reservada para otra cosa y agregó el símbolo @ pero eso obviamente rompió algo. Eliminé el proyecto e hice uno nuevo con un nombre diferente sin problemas.

Mate
fuente
3

Aqui hay otro más:

  1. Había estado trabajando en un proyecto de API web que usaba localhost: 12345.
  2. Revisé una rama diferente del control de código fuente que contiene el mismo proyecto.
  3. Ejecuté el proyecto en la rama y obtuve el error.
  4. Fui a "Propiedades> Web> URL del proyecto" e hice clic en "Crear directorio virtual"
  5. Apareció un diálogo que me decía que la url estaba asignada a un directorio diferente (el directorio para el proyecto original).
  6. Hice clic en Aceptar y el directorio virtual se reasignó.
  7. El error se fue.

Espero que ayude a alguien en alguna parte :)

grahamesd
fuente
eso realmente lo hizo por mí!
ra170
2

Tenía muchos problemas y errores que resolver, algunas de las respuestas anteriores me ayudaron, pero el truco final que me hizo funcionar fue: vaya a su proyecto, haga clic en propiedades.

Vaya a la pestaña Paquete / Publicar web y asegúrese de que la configuración esté establecida en Liberar y plataforma para todas las plataformas.

Por último, asegúrese de que "Elementos para implementar (se aplica a todos los métodos de implementación)" esté configurado en "Todos los archivos en esta carpeta de proyecto"

Entonces funcionó bien para mí.

Emiel Haeghebaert
fuente
2

Este problema es complicado porque es fácil confundir la causa raíz con cualquiera que sea la causa inmediata.

En mi caso, la causa inmediata fue que la solución está configurada para usar NuGet Package Restore, pero el servidor no estaba conectado a Internet, por lo que NuGet no pudo descargar las dependencias cuando compiló por primera vez.

Creo que la causa raíz es simplemente que la solución no puede resolver las dependencias correctamente. Puede ser una configuración de ruta incorrecta, o la versión incorrecta de un ensamblaje, ensamblajes en conflicto o una implementación parcial. Pero en todos los casos, el error simplemente dice que no puede encontrar el tipo especificado en global.asax porque no puede construirlo.

shovavnik
fuente
2

Asegúrese de que el espacio de nombres en el Global.asaxarchivo coincida con el del Global.csarchivo, es decir

Global.asax: Some.Website.Webapplication

Global.cs: Some.Website(menos la 'Aplicación web')

TheDaveJay
fuente
2

Intenté la mayoría de las respuestas anteriores y no funcionaron. Por alguna razón, solo cerrar y volver a abrir VS solucionó el problema para mí.

Rochelle C
fuente
2

Mi problema se resolvió cuando convertí en IIS la carpeta física que contenía los archivos a una aplicación. Haga clic derecho> convertir a aplicación.

jayt.dev
fuente
1

Para mí, fue porque había excluido temporalmente el archivo del proyecto. Simplemente lo incluí en el proyecto y luego funcionó.

mstechnewbie
fuente
El mío también, el archivo de la solución ha eliminado algunos archivos y no me di cuenta hasta que cerré y volví a abrir Visual Studio
Fiona - myaccessible.website
1

En mi caso, faltaba la referencia de System.Web.MVC en mi proyecto. Pero después de agregar referencias, el problema era el mismo, así que verifiqué las propiedades de mi carpeta Bin, era de solo lectura. Justo después de hacerlo escribible, todo funciona bien.

yashpal
fuente
1

Recibí un error porque implementé la aplicación como un directorio virtual y recibí el error del analizador "no se pudo cargar el tipo", luego implementé la aplicación como un sitio web y no volví a recibir ese error.

Riaz
fuente
0

Ninguna de las otras respuestas resolvió este error para mí.
Encontré una solución que funcionó, que sugiero para aquellos en la misma situación:

  1. Cerrar Visual Studio
  2. Navegue a Proyectos \ yourProject \ yourProject
  3. Cambie el nombre de Web.Debug.config y Web.Release.config
  4. Reconstruye y ejecuta tu aplicación
Charles Burns
fuente
Borrados estos ... y ahora no vuelven a aparecer.
FiringSquadWitness
0

Realmente nunca llegué al fondo de lo que me estaba causando. Creo que en algún lugar debo haber perdido algunos archivos. Recibí el error después de publicar en un nuevo servidor. Finalmente copié el sitio del sitio de trabajo. Luego, el sitio funcionó y también lo publicó en el nuevo servidor.

Giles Roberts
fuente
0

Sigue estos pasos:

  1. Construir
  2. Gerente de configuración
  3. Pon el proyecto AnyCPU
  4. Volver a generar
  5. Listo, después de esto solo siga los mismos pasos para pasarlo a x86 o x64
Ragdare
fuente
0

Para mí, tenía una DLL incluida con mi proyecto que tenía que ejecutarse en un entorno de 32 bits.

El servidor se configuró para ejecutar el sitio web en modo de 32 bits, pero no pude ejecutar la aplicación en mi máquina de 64 bits porque localhostno se había especificado que la carpeta se ejecutara en modo de 32 bits.

jp2code
fuente
0

Acabo de tener un problema similar.

La razón era que estaba cambiando un archivo.aspx.c y tenía que hacer una reconstrucción limpia. Después de eso todo funcionó.

Fannar Örn Hermannsson
fuente
0

Mi problema era que estaba tratando de crear una aplicación web ASPX en una subcarpeta de una carpeta que ya tenía un archivo web.config, y

Así que abrí la carpeta principal en Visual Studio como sitio web (Abrir> Sitio web). Pude agregar una nueva página ASPX de elemento que no tuvo problemas al analizar / cargar.

jamespgilbert
fuente
0

Para mí, el problema solo estaba en ciertos enlaces (largos) dentro del sitio web y se rastreaba hasta que URLScan tenía la configuración predeterminada de un límite de longitud de URL de 260.

James
fuente
0

He tenido el mismo problema. Intentar:

Haga clic derecho en el proyecto y seleccione Limpiar, luego haga clic derecho nuevamente y seleccione Reconstruir y ejecute el proyecto para ver si funcionó.

da Rocha Pires
fuente