223 votes

"Message d'erreur de l'analyseur : Could not load type" dans Global.asax

Je travaille sur un projet MVC3 et je reçois l'erreur suivante :

Message d'erreur de l'analyseur : Impossible de charger le type 'GodsCreationTaxidermy.MvcApplication'.

Erreur de source :

Ligne 1 : <%@ Application Codebehind="Global.asax.cs" Inherits="GodsCreationTaxidermy.Core.MvcApplication" Language="C#" %>

L'erreur que j'obtiens est cannot load GodsCreationTaxidermy.Core.MvcApplication mais dans cette capture d'écran la partie Core ne s'affiche pas dans l'erreur :

Error Page Screenshot

Quelqu'un a-t-il une idée ou une solution à cette erreur ?

8 votes

Avez-vous vraiment la classe GodsCreationTaxidermy.Core.MvcApplication dans votre application ? Si ce n'est pas le cas, créez-la et compilez le projet. Cela fonctionnera à coup sûr.

4 votes

Oui, j'ai bien GodsCreationTaxidermy.Core.MvcApplication (Global.asax.cs).

0 votes

Le fichier Global.asax qui semble être utilisé (d'après la capture d'écran) est différent de celui que vous avez montré.

241voto

Vérifiez que le chemin de sortie du projet (propriétés du projet / Build) est réglé sur bin y no bin\Release ou bin\Debug

Pour une raison quelconque, IIS (serveur de développement VS ou IIS local) accède toujours aux bibliothèques à partir de l'adresse de l'utilisateur. bin (et ne cherchera pas dans les sous-répertoires)

32 votes

Le crédit où il est dû. J'ai corrigé mon problème, mon application était configurée pour utiliser bin \Debug le changer en bin l'a résolu. Merci beaucoup.

0 votes

Il était intéressant d'apprendre que les projets ASP.NET n'utilisent pas le chemin de sortie par défaut bin/$(Configuration)/. Merci beaucoup pour la réponse !

0 votes

Génial, ça a sauvé la journée !

186voto

Facio Ratio Points 1368

Votre serveur web local exécute un code différent de celui sur lequel vous travaillez réellement. Assurez-vous que vous avez arrêté le débogage, arrêtez votre serveur web local, nettoyez et reconstruisez comme Peter l'a suggéré, vérifiez deux fois votre global.asax et global.asax.cs, et réessayez.

Si cela ne fonctionne pas et que vous utilisez un IIS local, essayez de supprimer le site dans IIS Manager et de le recréer manuellement.

5 votes

Erreur très étrange en effet. J'ai déployé IIS sur le serveur et j'ai obtenu ceci. Nettoyer et recompiler a fonctionné pour moi aussi.

3 votes

Nettoyer/Reconstruire + recréer le répertoire virtuel, et là ça a marché.

0 votes

Oui, cela fonctionne bien après avoir supprimé l'application existante avec le même nom dans IIS et reconstruit mon projet et ensuite publié.

39voto

Peter Munnings Points 1182

Essayez de modifier votre fichier global.asax (ajoutez simplement un espace quelque part) et exécutez à nouveau. Cela forcera le serveur Web intégré à rafraîchir et à recompiler le fichier global.asax.

Faites aussi un nettoyage et une reconstruction - cela devrait régler le problème.

5 votes

La modification de global.asax n'a rien fait pour moi, mais un nettoyage et une reconstruction ont réglé le problème :)

0 votes

J'ai eu ce problème quand je n'avais plus de courant. Nettoyer et reconstruire a aidé. Merci !

0 votes

Le nettoyage a échoué. La construction a échoué. Je n'avais aucun problème avec mon chemin de construction. Ceci, cependant, a fait l'affaire. Merci !

32voto

Paul Easter Points 31

Cela se produit parfois si vous modifiez les informations relatives à l'espace de noms (au niveau du projet ou de la classe) après l'exécution de l'option global.asax est généré.

Cliquez avec le bouton droit de la souris sur le Global.asax et sélectionnez "Ouvrir avec", puis "Éditeur XML (texte) avec codage" (d'autres éditeurs peuvent également fonctionner, mais c'est celui que j'utilise).

Ensuite, modifiez la section "Inherits" de la directive XML

<%@ Application Codebehind="Global.asax.cs" Inherits="GodsCreationTaxidermy.MvcApplication" Language="C#" %>)

afin qu'il corresponde au nom complet réel de votre classe d'application. Et c'est tout.

Une autre option consiste à copier tout votre code de Global.asax.cs, puis à supprimer et à créer un autre fichier Global.asax (et à recopier le code dans Global.asax.cs).

0 votes

Cela a aussi fonctionné pour moi. J'avais changé l'espace de nom de l'assemblage pour tous les projets de la solution. J'ai donc dû modifier le fichier Global.asax comme indiqué dans cette réponse, et le faire correspondre à ce qui est dans les paramètres de configuration du projet.

23voto

Gagan Points 19

J'ai fermé et rouvert Visual Studio et ça a marché.

5 votes

Fermez TOUT votre studio visuel

14 votes

D'abord, nous devrions tous essayer de sortir de la voiture, de fermer toutes les portes, puis d'y retourner.

1 votes

Non, vous devez fermer les portes de toutes vos voitures, en même temps.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X