Error: «No se pudo cargar el tipo MvcApplication»


241

Recibo el error

No se pudo cargar el tipo MvcApplication

cuando trato de ejecutar mi sitio web.

¿Cómo corregirlo?


35
Recibí este error al azar un día en nuestro servidor de compilación. haciendo una reconstrucción manual lo resolvió.
Zack

1
La ruta de salida se establece en las propiedades del proyecto en la pestaña de compilación
silasdavis

8
elimine el archivo global.asax y agregue uno nuevo, y estará bien.
DotNetGeek

44
Resulta que el nuevo proyecto no fue seleccionado en la configuración activa para la compilación.
JGeerWM

44
Si agregó recientemente el proyecto o si cambió recientemente la configuración de publicación (es decir, cambió de AnyCPU a x64), es posible que el proyecto no se cree cuando lo ejecuta. Vaya a CONSTRUIR-> ADMINISTRADOR DE CONFIGURACIÓN y verifique que la columna de compilación tenga la casilla marcada. Acabo de tener este problema ahora. También notará que sus puntos de interrupción son círculos claros cuando ejecuta la aplicación. Creo que esto es el resultado de la compilación predeterminada para .net 4.5.1 en la arquitectura del procesador que favorece 32 bits. Solo un problema si marca x64
David Bridge

Respuestas:


115

Por tonto que parezca, probé todo y no funcionó y finalmente reinicié VS2012 para verlo funcionar nuevamente.


1
¡LMFAO también funcionó para mí después de probar todo lo mencionado aquí y no funcionó! Gracias y +1!
Yustme

Mismo problema aquí. El error apareció después de una fusión y no desaparecería hasta que se reiniciara VS2012.
StuartQ

1
Para mí, lo que pudo haber sucedido fue que el puerto fue utilizado por una segunda instancia de Visual Studio que no tenía el proyecto compilado.
Clay Lenhart

Me funcionó a mi también. Qué desorden.
PAWAN RAJ Shakya

5 años después VS2017 y esta sigue siendo la solución. : /
Sagiv bg

105

-Para mí, la solución fue cambiar la ruta de salida en la pestaña de compilación. Cambié la ruta de salida a bin\y el error desapareció.

-Otra solución podría ser que tiene un conjunto de proyectos de inicio incorrecto.


8
Este fue nuestro problema también. Anteriormente se había establecido en algo como Debug \ x86 \ bin
t3rse

44
¡DECIR AH! Esta es la segunda vez en dos años que he estado en este artículo con este problema, la primera vez fue la respuesta principal, la segunda vez fue esta respuesta.
Ben Lesh

1
¡Gracias! Esto también me mordió. Había cambiado la plataforma para aclarar algunas advertencias, y la ruta de salida cambió sin que yo lo supiera.
camainc

66
Esta fue la respuesta correcta para mí ... ¿Alguna idea de por qué Visual Stupido se comporta de esta manera?
andreapier

1
Sí, esto fue todo. Cambiar a `bin` hace que todo funcione como se espera. @andreapier: Sí, VS2012 también parece comportarse de esta manera estúpida. ¡Que alguien lo arregle lo antes posible! :)
ahora el que no debe ser nombrado.

82

Estaba recibiendo el mismo error y, a pesar de hacer todo lo mencionado aquí y en otros lugares, nada funcionó. Resultó que había copiado el código fuente de global.asax.cs de una versión anterior del proyecto que tenía un nombre diferente. Entonces el namespace Testdebería haber sido namespace Test.WebUI. ¡Un error tonto, por supuesto, y estoy un poco avergonzado de escribir esto! Pero escribir con la esperanza de que un error similar de alguien más pueda llevarlo a verificar este aspecto trivial también.


Gracias Vipul. Acabo de hacer lo mismo y pensé que había perdido mucho trabajo como resultado. Solo cambiar el nombre del espacio de nombres ha salvado mi tocino
xiecs

2
Acabo de hacer la misma cosa. Abrí Global.asax en un editor de texto y solucioné el problema del espacio de nombres. Gracias
Kayvan Karim

66
Acabo de hacer la misma cosa. Solo para elaborar para cualquier otra persona: originalmente tenía un proyecto de prueba llamado "MvcApplication1" que se creó automáticamente. Luego hice un reemplazo global del espacio de nombres "MvcApplication" a "MyTest". En Global.asax en el bloc de notas, necesitaba cambiar a Inherits = "MyTest.MvcApplication"
PabloInNZ

Si hubiera una manera de dar oro, lo haría
shanabus

53

Simplemente haga una compilación manual en su solución.

Si está utilizando IIS local, intente eliminar el registro del sitio web en el administrador de IIS y luego volver a crearlo manualmente.


Este fue el ganador para mí, abandoné el sitio del repositorio y configuré iis, pero nunca hice una compilación en IIS
Anthony Main

31

[Extraído de la pregunta]

Si recibe este error: "No se pudo cargar el tipo de aplicación Mvc", mire la ruta de salida de su proyecto y asegúrese de que esté configurado en 'bin \'. El problema es que AspNetCompiler no puede encontrar los archivos si no están en la ubicación predeterminada.

Otro efecto secundario de cambiar la carpeta de salida es que no podrá depurar su código y aparece un mensaje que dice que no se puede encontrar la información de la Asamblea.


1
Esto parece un poco extraño cuando normalmente está separado entre las diferentes configuraciones de compilación.
nicodemus13

De forma predeterminada, está separado, pero mucha gente los cambia a una sola carpeta para que la versión y la depuración estén en la misma ubicación para un proyecto diferente que hace referencia a la salida (instaladores, etc.).
StingyJack

Me pregunto si este problema es peculiar de IIS Express. De todos modos, la razón lo he descubierto es porque es sólo atornilla sobre uno de nuestros nuevos titulares: que había cambiado bina bin\Debugy bin\Releasepero los viejos archivos aún estaban en mi bincarpeta de modo que no había visto ningún problema. Por supuesto, si realiza un pago limpio y crea estos archivos, no existen para usted, por lo que explota.
Bart leyó el

15

Tuve el mismo problema y lo resolví con los pasos a continuación

  1. Ir a propiedades del proyecto
  2. En la pestaña "Compilar", establezca la ruta de salida en "bin \"

1
¡Muchas gracias por esto, solucionó un problema que había tenido con puntos de interrupción no establecidos!
Chris

Eso fue lo que funcionó para mí. Lo descubrí solo pero gracias de todos modos.
Alexandre

¡Santo cielo! Esto ahorra un día.
ske

14

Ahh esto fue molesto.

Recibí este error después de un corte de energía y volví a mi proyecto.

Intenté reiniciar VS. Intenté configurar la ruta de salida a \ bin. Revisé mis espacios de nombre.

Pero lo que funcionó para mí fue reconstruir la solución.

Reconstruir solución !!!


13

Mi solución: ¡porque creé el problema! Había cambiado el espacio de nombres en Global.asax.cs

También debe cambiar el valor del atributo Hereda en Global.asax.


3
Yo también tuve este problema. Desearía que Visual Studio refactorizara los espacios de nombres en los atributos heredados en el marcado, así como las clases.
csharpforevermore

Igual que aquí. Al cambiar el nombre de los espacios de nombres, asegúrese de cambiar shift-alt-F10, o haga clic derecho para cambiar el nombre y actualizará todas las instancias por usted.
Rob

Esto funcionó para mí, pero fue difícil encontrar dónde implementar la solución. Hice un 'Buscar todo' para acceder al archivo Global.asax porque cuando hace doble clic en Global.asax en el editor de Visual Studio, obtiene el archivo Global.asax.cs, que en realidad es el código detrás del archivo .asax. Tenga en cuenta la extensión .cs. Entonces: CTRL-F y busque Global.asax (sin .cs) y cambie la herencia para que coincida con su espacio de nombres.
GerardV

9

Verifique el código detrás de la información, proporcionada en global.asax. Deben apuntar correctamente a la clase en su código detrás.

muestra global.asax:

<%@ Application Codebehind="Global.asax.cs" Inherits="MyApplicationNamespace.MyMvcApplication" Language="C#" %>

código de muestra detrás:

   namespace MyApplicationNamespace
    {
        public class MyMvcApplication : System.Web.HttpApplication
        {
            protected void Application_Start( )
            {
                AreaRegistration.RegisterAllAreas( );
                FilterConfig.RegisterGlobalFilters( GlobalFilters.Filters );
                RouteConfig.RegisterRoutes( RouteTable.Routes );
                BundleConfig.RegisterBundles( BundleTable.Bundles );
            }
        }
    }

7
  1. Haga clic derecho en el proyecto dentro de la solución que está fallando.
  2. Descargar proyecto
  3. Proyecto de recarga
  4. Proyecto de construcción
  5. Solución de reconstrucción

5

Esto también puede suceder mientras ejecuta el proyecto en Visual Studio si su IIS Express tiene / está alojando un proyecto antiguo / diferente con la misma asignación de puerto.

Para solucionar esto, puede cambiar la asignación de puertos para este proyecto o cerrar IIS Express.


5

Si aloja en IIS express y abre su proyecto en dos ubicaciones diferentes, es posible que vea este error.

La solución es ir Project/Properties/Web/Serversy hacer clic Create Virtual Directory.


4

La solución para mí fue hacer clic derecho en el proyecto Mvc, elegir propiedades y hacer clic en Crear directorio virtual.

Apareció un cuadro de mensaje que decía que el proyecto estaba asignado a la carpeta incorrecta (mostraba la carpeta para un proyecto TFS diferente . Daba la opción de asignarlo de nuevo a la carpeta correcta.


1
Gracias por el consejo, la causa para mí fue que recientemente reubiqué tfs. ¡Necesitaba eliminar la asignación de la carpeta de la solución y asignarla nuevamente para que la aplicación funcionara!
adhie

4

Ya tenía bin/en mi pestaña de compilación. Obtuve global.asax de otra copia del proyecto, pero eso no funcionó.

La solución que finalmente funcionó para mí fue eliminar la bin/carpeta y crear una nueva carpeta vacía con el mismo nombre.


1
Esto no proporciona una respuesta a la pregunta. Para criticar o solicitar una aclaración de un autor, deje un comentario debajo de su publicación: siempre puede comentar sus propias publicaciones, y una vez que tenga suficiente reputación podrá comentar cualquier publicación .
JLRishe

@brasofilo Podría haber hecho la llamada equivocada, pero dada la grave falta de información en la pregunta original, es muy probable que esta no sea la solución para el problema de OP, y esta respuesta es lo suficientemente corta como para que pueda agregarse como un comentario. Por otro lado, la pregunta original fue publicada hace mucho tiempo y hay un montón de respuestas "esto es lo que funcionó para mí" aquí, por lo que es una decisión difícil. Esta pregunta y sus respuestas pueden necesitar alguna limpieza.
JLRishe

@JLRishe, bueno, sí, es un desastre de preguntas y respuestas. Esta respuesta puede incluso ser duplicada de la segunda más votada, pero no estoy seguro. Marcaré la Q pidiendo un bloqueo de 10rep mínimo.
brasofilo

4

Sé que ya hay muchas soluciones para esto, pero pensé en mencionar lo que me resolvió.

Mi configuración se configuró en Depurar. Cambiarlo a Release hizo el truco para mí.


2
Lo cambié para liberarlo y funcionó ... lo cambié a depuración y siguió funcionando ... gracias.
Paul Zahra

3

Recibí este error porque estaba ejecutando el proyecto a pesar de algunos errores de tiempo de compilación. Esto no me di cuenta.


¡No me di cuenta porque la lista de errores de bleepity-bleep dijo que era FELIZ! Gracias.
CindyH

3

Elimine el contenido de la carpeta bin del sitio (use el explorador de archivos para esto). Reconstruir.


3

He caído en esto. He leído y probado todas las posibles soluciones que se dieron antes. Verificando la ruta de compilación, compilar, reconstruir, limpiar, reiniciar IIS y VS2015, reinstalar todos los paquetes nuget, compilarlos uno por uno, etc.

De repente recordé que VS guarda algunos archivos temporales ASP en las carpetas del sistema ... Creo que debería intentarlo, después de todo, eso no podría empeorar. Entonces vacié:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

Y todo está funcionando de nuevo ... Es extraño que este problema tenga soluciones tan diferentes posibles ...


3

Lo he visto muchas veces durante la última década y lo tuve nuevamente. Hay muchos problemas que resultan en el mismo error.

Una de las causas es el cambio de nombre de los archivos. Si está trabajando con archivos .cshtml, verifique todos los espacios de nombres dentro de esos archivos y dentro del archivo Views \ web.config. Para formularios web, cambie el nombre de Default.aspx (.cs relacionados y los archivos de diseñador se renombran automáticamente). El código subyacente cambia pero la línea Hereda en el marcado no. Cámbielo manualmente. Verifique la página del diseñador. A veces (¿VS2005-8?) La página del diseñador no refleja un cambio en el espacio de nombres. No he visto esto en 2010+.

Otro problema es cuando todo funciona en VS o en su PC local, pero no cuando se implementa. Esto podría deberse a que el entorno de implementación no está estructurado de la misma manera. Por ejemplo, el error ocurre si coloca su código en un directorio virtual debajo de una carpeta de aplicación, pero no ocurre si crea una nueva carpeta de aplicación y coloca todos sus archivos allí. No entiendo esto, ya que he configurado la nueva carpeta secundaria / virtual con los mismos permisos (o eso creo) y (creo) que el grupo de aplicaciones debería funcionar igual para todo en una carpeta de aplicación determinada.

En mi caso, también tuve una carpeta bin con ensamblados que se actualizan desde otros ensamblados en el servidor IIS. Una vez más, garantizar que se ejecuten en una carpeta de aplicación separada resultó en el éxito.

HTH


2

Recibo este problema cada vez que guardo un archivo que se compila dinámicamente (ascx, aspx, etc.). Espero unos 8-10 segundos y luego desaparece. Es infernalmente molesto.

Pensé que tal vez era un problema de IIS Express, así que lo intenté en el servidor de desarrollo incorporado y todavía lo estoy recibiendo después de guardar un archivo. Estoy ejecutando una aplicación MVC, también estoy usando T4MVC, tal vez eso sea un factor ...


2

Tuve este error frustrante en el entorno de desarrollo en Visual Studio, y resultó que la razón era bastante tonta. En resumen, si tiene más de un proyecto / sitio web en solución: asegúrese de que el puerto al que está intentando acceder al sitio web sea el mismo que el configurado en Propiedades del proyecto-> Web

En mi caso, el error fue causado porque estaba usando un puerto diferente para acceder al sitio web (en el navegador) mientras el proyecto en solución tenía asignado otro puerto. Para explicar un poco más, tenía dos proyectos de sitio web en mi solución Sitio web1 (puerto asignado 8001 en ISS por Visual-Studio) y Sitio web2 (puerto asignado 8101 en ISS por Visual-Studio). Entonces, aunque estaba construyendo el sitio web1, estaba tratando de acceder al sitio web usando locahost: 8101.

Ahora que finalmente me di cuenta del problema, veo que el comentario de @ StingyJack también aborda el problema similar.


2

Asegúrese de que el espacio de nombres en su global.asax.cs coincida con el espacio de nombres de su aplicación web


2

Tuve este error nuevamente y ninguno de los anteriores funcionó para mí. Tuve que eliminar el siguiente nodo en el archivo .csproj:<VisualStudio>....</VisualStudio> . Recargué VS y funcionó.

FYI, VS pudo recrear el nodo y luego recreé el sitio web en IIS (a través de VS) y funcionó perfectamente.

Espero que esto ayude a alguien.


1

Asegúrese de no tener que abrir el proyecto MVC como Archivo-> Abrir sitio web, use Archivo-> Abrir proyecto en su lugar.


1

Lo que funcionó para mí fue reiniciar Visual Studio.

Intenté reconstruir manualmente, realizar una limpieza y reconstrucción, y eliminar la carpeta bin, todo lo cual no funcionó. Mi ruta de salida ya estaba configurada en bin \


Hice una reconstrucción a nivel de solución pero noté que la carpeta bin de mi proyecto estaba vacía. Construí solo el proyecto y de repente tuve una carpeta bin llena. Lancé el proyecto y funcionó.
MrBoJangles


1

Esto podría suceder muy a menudo si cambia su espacio de nombres. Devuelve el nombre de tu espacio de nombres, como solía ser, ¡y eso debería hacerlo funcionar!


1

En algunas circunstancias, los nuevos proyectos que cree no están configurados de forma predeterminada para crear. Si hace clic con el botón derecho en su solución, elija Propertiesy elija Configuration Properties| Configurationnodo a la izquierda y asegúrese de que su proyecto tenga una marca de verificación debajo deBuild columna. En circunstancias normales, he descubierto que esto sucede por defecto. En otras circunstancias (resulta que tengo una solución Web Api / Xamarin Android e iOS / Mvc 5 algo compleja que exhibe este comportamiento) la marca de verificación no está presente.

Esto está relacionado con las otras respuestas: si el ensamblaje de su proyecto web no está disponible, recibirá este error. Pero este podría ser un escenario común, especialmente porque de hecho compila su solución: el proyecto simplemente no se construye.


1

Recibí este error porque mi control de versión se configuró para ignorar mi carpeta bin . Muy estúpido, pero tal vez alguien más se beneficiará.


1
¿No le gustaría ignorar la carpeta bin, junto con obj y otras cosas que se crean y no forman parte del código fuente?
MrBoJangles

Normalmente sí. Pero en este sitio en particular, era la única forma de enviar elementos al servidor. Probablemente debería haber hecho mi respuesta más genérica.
Brent Waggoner

Entiendo totalmente las circunstancias especiales, cosas así.
MrBoJangles

1

Me encontré con este mismo problema y veo todo tipo de respuestas, pero no se ha aceptado nada. Después de un poco descubrí que simplemente construir el sitio web antes de intentar ejecutar resolvió mi problema.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.