web-dev-qa-db-fra.com

"Message d'erreur d'analyse: Impossible de charger le type" dans Global.asax

Je travaille sur un projet MVC3 et reçois le message d'erreur suivant:

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 je reçois est que je ne peux pas charger GodsCreationTaxidermy.Core.MvcApplication, mais dans cette capture d'écran, la partie principale ne s'affiche pas dans l'erreur:

Error Page Screenshot

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

178
PsychoCoder

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

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

156
Facio Ratio

Vérifiez que le chemin de sortie du projet (propriétés du projet/génération) est défini sur bin et not bin\Release ou bin\Debug

Pour une raison quelconque, IIS (serveur de développement VS ou IIS local) a toujours accès aux bibliothèques à partir du répertoire bin (sans rechercher de sous-répertoires).

183
Vincent de Lagabbe

Essayez de modifier votre fichier global.asax (ajoutez simplement un espace quelque part) et lancez à nouveau. cela obligera le serveur Web intégré à actualiser et à recompiler le fichier global.asax.

Également effectuer un nettoyage et une reconstruction - devrait résoudre le problème

32
Peter Munnings

Cela se produit parfois si vous modifiez les informations sur l'espace de noms (au niveau du projet ou de la classe) après la génération du global.asax

Faites un clic droit sur le fichier Global.asax et sélectionnez "Ouvrir avec", puis sélectionnez "Editeur XML (texte) avec encodage" (d'autres éditeurs peuvent également fonctionner, mais c'est ce que j'utilise). 

Puis éditez la section "Hérite" de la directive XML 

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

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

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

25
Paul Easter

J'ai fermé et réouvert le studio visuel et cela a fonctionné. 

17
Gagan

Je devais aller à BUILD -> CONFIGURATION MANAGER et - ahem - cocher la case à côté de mon projet pour m'assurer qu'il est réellement construit. 

15
Ron Newcomb

J'ai eu ce problème aujourd'hui, et il m'a fallu un certain temps pour trouver la cause.

Fondamentalement, mon projet principal VS2015 incluait un sous-projet qui avait été construit en utilisant une version supérieure de .Net Framework.

Bizarrement, lorsque vous rencontrez ce problème, VS2015 signalera avec plaisir que la solution a été correctement construite, mais lorsque vous essayez d’exécuter le site Web, vous obtenez simplement cette erreur trompeuse, ce qui suggère que votre fichier Global.asax.cs est incorrect.

Ainsi, si vous voyez cette erreur et que le nettoyage/la reconstruction ne vous aide pas, ouvrez l'arborescence References de votre projet et vérifiez les points d'exclamation.

 enter image description here

Consultez également votre fenêtre Output pour des messages comme celui-ci:

The primary reference "C:\Projects\Business Objects 4\bin\Release\BusinessObjects.dll" 
could not be resolved because it was built against 
the ".NETFramework,Version=v4.5" framework. 
This is a higher version than the currently targeted framework
".NETFramework,Version=v4.0".

La solution consiste bien entendu à cliquer avec le bouton droit de la souris sur votre projet principal, à sélectionner l'onglet "Application" du haut de la page et à remplacer la version du Framework cible par une version supérieure, qui correspond à votre sous-projet.

Il est agaçant que Visual Studio 2015 vous permette de créer et d’exécuter pleinement des solutions qui contiennent ce problème en silence. C'est demander des ennuis ..!

4
Mike Gledhill

Je travaillais sur un projet Web ASP.NET plus ancien 'basé sur des dossiers' (que je déteste) - et cela a été ma solution:

Créez un dossier App_Code (si vous n'en aviez pas déjà un)

Déplacez le fichier Global.asax.vb dans le dossier App_Code

Le balisage dans Global.asax peut laisser de côté tous les espaces de noms (du moins pour ce style de projet, autant que je sache)

<%@ Application Codebehind="Global.asax.vb" Inherits="MyApp" Language="VB" %>

... où "MyApp" est le nom de la classe en cours de définition dans Global.asax.vb

2
bkwdesign

Je dois signaler que j'ai essayé au moins 4 suggestions de ce post. Aucun d'entre eux a travaillé. Pourtant, je suis heureux d’annoncer que j’ai récupéré en récupérant de sauvegarde. Seulement eu à mettre à jour mes dernières modifications de code à partir du fichier journal. A pris moins de 10 minutes. Passé 3 fois que lire ce post et essayer d'autres suggestions. Pardon.

C'était une erreur très étrange. Bonne chance à tous ceux qui rencontrent ce Gremlin.

2
htm11h

Je viens de rencontrer cela sur une application MVC5 et rien ne fonctionnait pour moi. Ceci est arrivé juste après que j'ai essayé de faire un SVN, revenir à une version plus ancienne du projet.

Je devais supprimer global.asax.cs puis en ajouter un nouveau en cliquant avec le bouton droit de la souris sur Projet -> Ajouter un nouvel élément -> Global.asax et CELA l'a finalement résolu.

J'ai pensé que cela pourrait aider quelqu'un.

1

J'ai le même problème lorsque 2 instances de Visual Studio exécutent le même projet. Donc, j'ai fermé les deux Visual Studio et ouvert une seule instance et cela fonctionne bien maintenant!

1

Moi aussi j'ai fait face au même problème. Malgré le suivi de chaque réponse, cela n’a pas fonctionné . Ensuite, j’ai remplacé les mots "Inherits = namespace.class" par "Inherits = nom d'assemblage qualifié complet", c'est-à-dire "Inherits = namespace.class, assemblyname, Version =, Culture =, PublicKeyToken = " J'espère que cela vous aidera.

1
Mahesh

Videz le dossier bin. Générez toutes les bibliothèques de classes dépendantes et faites-les référence dans le projet principal, puis créez la solution complète. 

La source

1

"CONSTRUIRE -> CONFIGURATION MANAGER et - ahem - cochez la case en regard de mon projet pour vous assurer qu'il est réellement construit." case à cocher aidé.

1
DiSaSteR

Cela peut également arriver si vous oubliez par inadvertance de définir votre solution VS à "Plusieurs projets de démarrage" si vous exécutez Web et WebApi à partir de la même solution.

Vous pouvez vérifier cela en cliquant avec le bouton droit de la souris sur la solution dans l'explorateur de solutions et en sélectionnant «Propriétés». Recherchez ensuite «Projets de démarrage».

1
Dave Black

Le problème pour moi est que je n’ai pas inclus global.asax.cs dans mon projet. Et comme je copiais des fichiers d'un .net 4.5 vers un 4.0, je n'ai pas commenté les lignes inutiles dans 4.0. Parce qu'il n'était pas inclus, visual studio l'a compilé de toute façon sans problèmes. Mais lorsque je l'ai inclus, cela a mis en évidence les lignes qui posent problème.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
//using System.Web.Http;
using System.Web.Mvc;
//using System.Web.Optimization;
using System.Web.Routing;

namespace YourNameSpace
{
    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            //GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            //BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
}
0
Satbir Kira

Supprimez le répertoire .vs de la racine de la solution. Nettoyer. Reconstruire.

Ce problème me rend dingue de temps en temps et je finis inévitablement ici en cherchant des réponses. Je soupçonne que plusieurs causes peuvent générer cette exception, cela fonctionne une fois pour moi.

0
Patrick

Pour nous, le gestionnaire de configuration montre que les dll compilées sont un mélange de «64» et de «tout cpu».

Le fait de les mettre tous dans le même build le corrige.

0
Carra

J'ai passé littéralement une journée à essayer de résoudre ce problème.

La seule chose qui a fonctionné a été la suppression du fichier .sln, la création d'un nouveau fichier et l'ajout des projets un par un.

¯\_ (ツ) _/¯ - Programmation - ¯\_ (ツ) _/¯ 

0
Stachu

J'ai résolu le problème de la manière suivante: Il suffit de réparer le namespace dans Global.asax.

0
MarianNikolov

Vous pouvez également vérifier les propriétés de votre site dans IIS. (Dans IIS, cliquez avec le bouton droit sur le site et choisissez Propriétés.) Assurez-vous que le paramètre Chemin physique pointe vers le chemin correct pour votre application et non pour une autre application. (Cela a corrigé cette erreur pour moi.)

0
Rob Cole

J'ai également la même erreur ... vérifiez la configuration IIS de votre répertoire virtuel et assurez-vous que Propriétés - ASP.NET - Version ASP.NET est identique à Propriétés du projet - Application - Cadre cible. (Cela a corrigé cette erreur pour moi.)

0
montearg70

J'ai constaté que mon problème était de changer l'espace de noms du projet, sans le refactoriser dans l'ensemble de la solution. Vérifiez les propriétés de votre projet et voyez en quoi consiste votre espace de noms, assurez-vous que les lignes sont alignées.

0
Hadley

Mon application a été construite dans une ancienne version de VS et ne possédait pas de dossier bin. Je l'avais mise à niveau vers une version plus récente et j'avais un cauchemar à le déployer. J'ai finalement suivi cette erreur jusqu'au Projet> Propriétés> Application. Le cadre cible a été défini à 2.0; le changer sur le serveur pour qu'il corresponde dans le pool IIS Manager/App a résolu le problème pour moi. 

0
jeffe65

J'ai tout essayé ici et rien n'a fonctionné. Mon projet était dans VS 2013. Depuis, je suis passé à VS 2015 et j'ai créé toutes mes nouvelles applications en 2015, mais j'ai chargé, compilé, construit etc. toutes mes anciennes applications construites en 2013 dans cette version.

J'ai fini par charger la solution en 2015 et cela l'a résolu pour moi.

0
Blair Holmes

Ce problème m'a résolu en donnant la permission du dossier ainsi que le contrôle d'IIS.

On m'a donné la permission à tout le monde car je teste dans mon environnement local. Mais en mode publication, je pense que nous n'accordons qu'une permission à l'utilisateur ASP.Net.

0
Ajay2707

Le projet de reconstruction peut résoudre le problème.

0
suphero

J'ai aussi la même erreur ... vérifiez le nom de l'application que vous avez bien développée, c'est-à-dire. essayez également de modifier physiquement le nom du dossier créé pour l'application, tout cela doit être identique au nom de l'espace de nom ci-dessus présent dans le fichier global.asax

0
Bhavik

J'ai rencontré ce message d'erreur et j'ai finalement découvert que le message d'erreur était trompeur. Dans mon cas, il semble y avoir eu un problème de routage dans IIS qui a provoqué la lecture du fichier global.asax d'un autre site sur le serveur Web, générant ainsi l'erreur.

Dans IIS, mon site était lié à http: * 80: webservices.local et contenait une application appelée MyAPI. J'ai reçu le message redouté lors de l'appel de l'application MyAPI à l'aide de l'adresse IP du serveur Web.

Afin d'appeler avec succès mon application, j'ai dû ajouter une entrée de fichier hôte pour webservices.local sur toutes les machines appelant l'application MyAPI. Ensuite, toutes mes demandes devaient porter le préfixe http: //webservices.local/MyAPI/ afin de pouvoir acheminer correctement.

0
Sheldon

J'ai passé plusieurs jours sur cette question. Je l'ai finalement résolu avec la combinaison suivante de suggestions de ce post. 

  1. Changez la cible de la plate-forme en N'importe quel processeur. Je n'avais pas cette configuration actuellement, donc je devais aller dans le gestionnaire de configuration et l'ajouter. Je compilais spécifiquement pour x64. Cela seul n'a pas résolu l'erreur. 
  2. Modifiez le chemin de sortie en bin\ au lieu de bin\x64\Debug. Je l'avais déjà essayé plusieurs fois avant de changer de cible. Le fait que le chargement de l’Assembly n’ait pas été chargé en raison d’un format non valide n’a fait aucune différence. 

Pour être clair, je devais faire les deux avant que ça commence à fonctionner. Je les avais essayés individuellement à plusieurs reprises, mais ça ne les réparait jamais tant que je n'avais pas fait les deux. 

Si je modifie l'un ou l'autre de ces paramètres sur l'original, la même erreur se produit à nouveau, malgré l'exécution de Clean Solution et la suppression manuelle de tous les éléments du répertoire bin

0
Drew Chapin

impossible de charger les erreurs avec votre projetfirstly Fix your errors and after rebuild project its working

0
Codeone

Pour mon cas, l’assemblage Web faisait partie de GAC ... donc après la construction, il doit être installé dans GAC et cela a fonctionné.

0
Vishnu