web-dev-qa-db-fra.com

Erreur: "Impossible de charger le type MvcApplication"

Je reçois l'erreur

Impossible de charger le type MvcApplication

quand j'essaye de faire tourner mon site web.

Comment le corriger?

228
Gil

Aussi bête que cela puisse paraître, tout essayé et cela ne fonctionna pas et redémarra finalement VS2012 pour le voir fonctionner à nouveau. 

110
gurrawar

-Pour moi, le correctif était de changer le chemin de sortie dans l'onglet de construction . J'ai changé le chemin de sortie en bin\ et l'erreur est partie.

-Une autre solution pourrait être que vous avez le mauvais ensemble de projet de démarrage.

97
bob new

J'avais la même erreur et malgré tout ce qui était mentionné ici et ailleurs, rien ne fonctionnait. Il s’est avéré que j’avais copié le code source de global.asax.cs d’une version précédente du projet qui portait un nom différent. Donc, le namespace Test aurait dû être namespace Test.WebUI. Une erreur stupide bien sûr et je suis un peu gêné d'écrire ceci! Mais écrire dans l’espoir qu’une erreur similaire de la part de quelqu'un d’autre puisse le conduire à vérifier également cet aspect trivial.

82
Vipul

Il suffit de faire un manuel sur votre solution.

Si vous utilisez IIS local, essayez de supprimer l'enregistrement du site Web dans le gestionnaire IIS, puis de le recréer manuellement.

51
mark vanzuela

[Extrait de la question]

Si vous obtenez cette erreur: "Impossible de charger le type MvcApplication", examinez le chemin de sortie de votre projet et assurez-vous qu'il est défini sur "bin \". Le problème est que AspNetCompiler ne peut pas trouver les fichiers s'ils ne se trouvent pas à l'emplacement par défaut.

Un autre effet secondaire de la modification du dossier de sortie est que vous ne pourrez pas déboguer votre code et un message indiquant que les informations sur l’Assembly ne peuvent pas être trouvées s'affiche.

31
StingyJack

J'ai eu le même problème et résolu avec les étapes ci-dessous

  1. Accéder aux propriétés du projet
  2. Dans l'onglet "Construire", définissez le chemin de sortie sur "bin \"
14
A_B

Ahh c'était agaçant.

Vous avez cette erreur après une coupure de courant et je suis revenu à mon projet.

J'ai essayé de redémarrer VS . J'ai essayé de définir le chemin de sortie sur\bin . J'ai vérifié mes espaces de noms.

Mais ce qui a fonctionné pour moi a été de reconstruire la solution.

Reconstruire la solution !!!

12
Pomster

Ma solution: Parce que j'ai créé le problème! J'avais changé le namespace dans Global.asax.cs

Vous devez également modifier la valeur de l'attribut Inherits dans le fichier Global.asax.

11
mkaj

Vérifiez le code derrière les informations fournies dans le fichier global.asax. Ils doivent correctement indiquer la classe dans son code derrière.

exemple global.asax:

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

exemple de code derrière:

   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 );
            }
        }
    }
8
Farshid Saberi
  1. Faites un clic droit sur le projet de la solution en échec.
  2. Décharger le projet
  3. Reload Project
  4. Projet de construction
  5. Solution de reconstruction
5
JoshYates1980

Si vous hébergez dans IIS express et que vous ouvrez votre projet à deux emplacements différents, vous risquez de rencontrer cette erreur.

La solution consiste à aller à Project/Properties/Web/Servers et à cliquer sur Create Virtual Directory.

5
Steve Dunn

Cela peut également se produire lors de l'exécution du projet dans visual studio si votre IIS Express héberge/héberge un projet ancien/différent utilisant la même affectation de port. 

Pour résoudre ce problème, vous pouvez modifier l'attribution de port pour ce projet ou fermer IIS Express.

4
StingyJack

La solution pour moi était de cliquer avec le bouton droit sur le projet MVC, de choisir les propriétés et de cliquer sur Créer un répertoire virtuel.

Une boîte de message est apparue indiquant que le projet avait été mappé sur le mauvais dossier (le dossier correspondant à un différent projet TFS . Il permettait de le mapper dans le bon dossier.

4
Will Newton

J'obtenais cette erreur parce que j'exécutais le projet malgré quelques erreurs de compilation. Ce que je n'ai pas remarqué.

3
Gautam Jain

Je sais qu'il existe déjà de nombreuses solutions à ce problème, mais je pensais simplement mentionner ce qui l'avait résolu pour moi.

Ma configuration a été définie sur Debug. Le changer en Release a fait l'affaire pour moi.

3
Amanda

Supprimez le contenu du dossier bin du site (utilisez l'explorateur de fichiers pour cela). Reconstruire.

3
Malcolm Swaine

J'ai déjà eu bin/ dans mon onglet de construction. J'ai reçu global.asax d'un autre exemplaire du projet, mais cela n'a pas fonctionné.

La solution qui a finalement fonctionné pour moi a été de supprimer le dossier bin/ et de créer un nouveau dossier vide portant le même nom.

3
zaydev

Je l'ai vu à plusieurs reprises au cours de la dernière décennie et je viens de l'avoir à nouveau. De nombreux problèmes entraînent la même erreur.

Une cause est un changement de nom de fichiers. Renommez Default.aspx (les fichiers .cs et concepteur associés sont automatiquement renommés). Le code ci-dessous change mais la ligne Inherits du balisage ne change pas. Changez-le manuellement. Vérifiez la page du concepteur. Parfois (VS2005-8?), La page de concepteur ne reflète pas une modification de l’espace de nom. Je n'ai pas vu cela en 2010+.

Un autre problème réside dans le fait que tout fonctionne dans les VS ou sur votre PC local, mais pas lorsque vous déployez. Cela peut être dû au fait que l'environnement de déploiement n'est pas structuré de la même manière. Par exemple, l'erreur se produit si vous placez votre code dans un répertoire virtuel sous un dossier d'application, mais cela ne se produit pas si vous créez un nouveau dossier d'application et y placez tous vos fichiers. Je ne comprends pas celui-ci, car le nouveau dossier enfant/virtuel contient les mêmes autorisations (du moins, je pense) et (je crois) que le pool d'applications doit fonctionner de la même manière pour tout ce qui se trouve dans un dossier donné.

Dans mon cas, j'ai également un dossier bin contenant des assemblys mis à jour à partir d'autres assemblys sur le serveur IIS. Là encore, le succès de ces opérations est de s’assurer qu’elles sont exécutées dans un dossier d’application distinct.

HTH

2
TonyG

Je suis tombé dans ça. J'ai lu et testé toutes les solutions possibles qui ont été données auparavant. Vérification du chemin de construction, construction, reconstruction, nettoyage, redémarrage de IIS et de VS2015, réinstallez tous les packages de nuget, compilez-les un par un, etc.

Je me suis soudainement rappelé que VS conservait des fichiers temporaires ASP dans des dossiers système ... Je pense que je devrais essayer, après tout, cela ne pourrait pas être pire. Alors j'ai vidé:

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

Et tout fonctionne à nouveau ... Bizarre que ce problème ait autant de solutions possibles ...

2
junta

Assurez-vous que l’espace de noms dans votre global.asax.cs correspond à l’espace de noms de votre application Web.

2
IndieTech Solutions

Dans certains cas, les nouveaux projets que vous créez ne sont pas définis par défaut pour être générés. Si vous cliquez avec le bouton droit sur votre solution, choisissez Properties et choisissez le Configuration Properties | Configuration noeud à gauche et assurez-vous que votre projet est coché sous la colonne Build. Dans des circonstances normales, j'ai constaté que cela se produit par défaut. Dans d’autres circonstances (il se trouve que j’ai une solution Web et Api/Xamarin Android et iOS/Mvc 5 quelque peu complexe qui présente ce comportement), la coche n’est pas présente.

Ceci est lié aux autres réponses - si l’assemblage de votre projet Web est indisponible, vous obtenez cette erreur. Mais cela pourrait être un scénario courant, d'autant plus que vous compilez effectivement votre solution - le projet n'est tout simplement pas construit.

1
Kirk Woll

J'ai eu cette erreur parce que mon contrôle de version avait été configuré pour ignorer mon dossier bin . Très stupide, mais peut-être que quelqu'un d'autre en profitera.

1
Brent Waggoner

Ce qui a fonctionné pour moi a été de redémarrer Visual Studio.

J'ai essayé de reconstruire manuellement, d'effectuer un nettoyage et une reconstruction, et de supprimer le dossier bin qui ne fonctionnait pas. Mon chemin de sortie était déjà défini sur bin \

1
Johnie Karr

Cela peut arriver très souvent si vous modifiez votre espace de noms. Renvoie le nom de votre espace de noms, comme auparavant

1
user3576116

Assurez-vous de ne pas avoir à ouvrir le projet MVC tel que Fichier -> Ouvrir un site Web utiliser Fichier -> Ouvrir un projet

1
Awk

J'ai eu cette erreur frustrante dans l'environnement de développement dans Visual studio, et la raison en était assez stupide. En bref, si vous avez plusieurs projets/sites Web en solution: assurez-vous que le port auquel vous essayez d'accéder au site Web est identique à celui configuré dans les propriétés du projet -> Web.

Dans mon cas, l'erreur était due au fait que j'utilisais un autre port pour accéder au site Web (dans le navigateur), alors qu'un autre port était attribué au projet dans la solution. Pour expliquer un peu plus, j'avais deux projets de site Web dans ma solution Website1 (port attribué 8001 dans ISS par Visual-Studio) et Website2 (port attribué 8101 dans ISS par Visual-Studio). Ainsi, même si je construisais Website1, j'essayais d'accéder au site Web à l'aide de locahost: 8101.

Maintenant que j'ai enfin compris le problème, je constate que le commentaire de @ StingyJack aborde également le même problème.

1
mmmMAC

J'ai rencontré ce problème et j'y trouve toutes sortes de réponses mais rien n'a été accepté. Après un peu, j'ai découvert que la simple construction du site Web avant d'essayer de faire fonctionner résolvait mon problème. 

1
webternals

Si vous avez modifié un espace de noms, veillez à cliquer avec le bouton droit de la souris et à refactoriser.

1
rocktheartsm4l

Je reçois ce problème à chaque fois que je sauvegarde un fichier compilé de manière dynamique (ascx, aspx, etc.). J'attends environ 8-10 secondes, puis ça s'en va. C'est terriblement agaçant.

Je pensais que c’était peut-être un problème de IIS Express. J’ai donc essayé d’utiliser le serveur de développement intégré et je le reçois toujours après avoir sauvegardé un fichier. J'utilise une application MVC, j'utilise aussi T4MVC, c'est peut-être un facteur ...

1
Sam

J'ai eu cette erreur encore et aucun de ce qui précède n'a fonctionné pour moi. J'ai dû supprimer le noeud suivant dans le fichier .csproj: <VisualStudio>....</VisualStudio>. Reloaded VS et cela a fonctionné.

Pour votre information, VS a pu recréer le nœud, puis le site Web a été recréé dans IIS (via VS) et cela a parfaitement fonctionné.

J'espère que cela aidera quelqu'un.

1
Rob

Mon problème était que je n'avais pas encore construit le projet (oups). Je ne sais pas si cela aide vraiment quelqu'un, mais assurez-vous simplement de créer tout avant de cliquer sur les liens.

0
rookie1024

J'ai tout essayé, puis j'ai cherché dans Google l'erreur que je commençais à ne pas pouvoir trouver nuget.exe ... J'ai pensé: eh bien, je n'ai pas vraiment besoin de ça ... Il se trouve que je l'ai fait. Solution que j'ai trouvée: Faites un clic droit sur Solution et cliquez sur Activer la restauration du paquet NuGet

0
Adam Pine

mon problème était que j'avais 2 projets fonctionnant sur le même port. La solution était de changer les ports et de recréer un nouveau répertoire virtuel pour le nouveau projet

0
jordan koskei

J'ai essayé beaucoup de suggestions mais ce qui a fonctionné pour moi a été d'utiliser la fonctionnalité de publication (dans l'onglet Construire) de Visual studio. J'ai simplement utilisé le choix de déploiement FTP pour envoyer les bits à mon serveur avec mes crédits FTP. Puis je pointe IIS vers le répertoire. Bien sûr, vérifiez dans votre pool d'applications le cadre correct. 

0
pat capozzi

J'avais testé chacune de ces choses et aucune ne fonctionnait. Je me suis alors rappelé que je faisais tourner le site par le biais de mon instance locale de IIS et que j'avais déplacé le répertoire dans lequel je compilais le code. En d’autres termes, mon site IIS était configuré pour examiner l’ancien répertoire qui posait un problème. Aller dans IIS et changer la racine du site dans mon nouveau répertoire a évidemment résolu le problème.

0
Andy Merrick

Dans mon cas, j'ai renommé la classe Global en MvcApplication. Lors du changement de nom, il doit être modifié à tous les endroits, sinon l'application recherche la classe globale dans un espace de noms donné.

0
Qerts

Je viens d'avoir ce problème avec un projet API Web ASP.NET MVC et aucune des solutions n'a fait l'affaire.

J'ai réussi à résoudre le problème en redémarrant la machine. J'ai effectué une mise à niveau vers Visual Studio 2013, qui n'a pas nécessité de redémarrage, mais qui était probablement à l'origine du problème.

0
Dante

Impossible de charger le type MVCApplication1.MVCApplication

Problème: Web.Config est peut-être corrompu à cause de certaines mises à jour de la machine. Lorsque j'ai comparé web.config avec le serveur web.config, j'ai alors réalisé que toute la configuration de base manquait, comme les fournisseurs de build, les modules, les gestionnaires, les espaces de noms, etc.

Solution: remplacez le fichier web.config de l'emplacement ci-dessous par celui de Web.config du serveur du même emplacement (l'application fonctionne correctement sur le serveur) . C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

J'ai passé plus de 10 jours et j'ai donc pensé que cela pourrait être utile à quelqu'un.

0
TTY

Je travaillais avec Azure Mobile App et ce problème était lorsque j'ai ajouté MVC Controller. Et si vous supprimez tous les fichiers de Team Explorer (Annuler), vous devrez supprimer bin, obj et Global.asax.cs du dossier Solution

0
Vlad