web-dev-qa-db-fra.com

Message d'erreur d'analyse: Impossible de charger le type 'sometype'

Je rencontre une erreur que je ne parviens pas à résoudre depuis un certain temps. Je me demandais si quelqu'un pouvait aider à identifier la cause de cette erreur? Je suis complètement nouveau à asp/asax. Après quelques recherches, je pense que l'erreur que je reçois est due à l'application Web qui tente d'utiliser du code obsolète. Je pensais reconstruire le fichier c # en utilisant Visual Studio et/ou l’ensemble du projet. Cependant, je suis complètement nouveau en C # et asp, et je me demandais si on pouvait me suggérer si cela pouvait résoudre le problème et/ou s’il existait une autre solution. 

Message d'erreur

Parser Error Message: Could not load type 'Inventory1.Global'.

Source Error:   <%@ Application Codebehind="Global.asax.cs" Inherits="Inventory1.Global" %>

Contenu entier Global.asax: 

<%@ Application Codebehind="Global.asax.cs" Inherits="Inventory1.Global" %>
19
AnchovyLegend

Essayez de remplacer CodeBehind avec CodeFile

31

Impossible de charger le type

signifie qu'un type n'a pas pu être chargé. (Dans ce cas, "type" fait référence à Inventory1.Global). Les types sont situés dans des DLL compilées. Par conséquent, la DLL n'est pas disponible, est obsolète ou ne contient pas un type public avec le nom donné.

Certaines causes possibles sont:

  • Vous n'avez aucun type déclaré avec le nom donné. Pour votre exemple, vous devriez avoir les éléments suivants:
namespace Inventory1 {
  public class Global {
  ...
  }
}

Note: évitez les noms tels que Inventory1. Ils impliquent qu'il existe un Inventory2, Inventory3, etc., ce qui est une mauvaise pratique car ils sont ambigus et peu descriptifs. En outre, Global est assez vague et peut introduire une confusion avec le global namespace .

  • Assurez-vous que vos cas correspondent (Inventory1, pas INVENTORY1.)
  • Vous n'avez pas compilé le projet. Dans VS, reconstruisez la solution.
  • L'assembly qui déclare que la classe a une erreur de compilation, le DLL correspondant est manquant ou obsolète. Assurez-vous que vous avez résolu toutes les erreurs.
  • La classe n'est pas marquée comme public

Si je devais deviner, je mettrais mon argent sur une erreur de compilation. Contrairement à PHP et aux autres langages interprétés, C # doit être correctement compilé avant de pouvoir être utilisé.

8
3Dave

J'ai eu cette erreur, juste besoin de reconstruire le projet

4
user1752532

Comme cela ne se produisait qu’avec IISexpress, changer le résultat de bin\Debug\à bin\l’a résolu pour moi. Changer la balise CodeBehind en CodeFile n'a fait qu'engendrer encore plus de problèmes.

2
Micael

J'ai fait face à ce problème et j'ai obtenu la solution de ici et je voudrais la partager.

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

J'ai fait ça et ça a fonctionné comme un charme pour moi !!

2

C'est arrivé avec moi sur ma machine locale. Le problème était incorrect. IISExpres config . Si vous rencontrez ce problème dans votre environnement local (le débogage de Visual Studio s'exécute), vérifiez le fichier de configuration IIS Express. Assurez-vous que le chemin de votre site/application local pointe vers le bon emplacement. 

Le fichier de configuration s'appelle applicationhost.config. Il est stocké ici: Mes documents> IIS Express> config. Habituellement (pas toujours) l'un de ces chemins fonctionnera:

  • % userprofile%\documents\iisexpress\config\applicationhost.config
  • % userprofile%\mes documents\iisexpress\config\applicationhost.config
1
zwooter

Il ne trouve pas le fichier nécessaire dans l'assembly dll . Reconstruisez le projet, recréez la solution, puis réessayez.

1
Md Shahriar

Après avoir recherché toutes les causes possibles de cette situation, j’ai trouvé quelques mesures à prendre pour que mon projet soit opérationnel ...

(Remarque: vous n'aurez peut-être pas besoin de faire tout cela - c'est une affaire au cas par cas)

  • Si vous avez modifié IIS Express au niveau local IIS, vous devrez peut-être modifier la configuration de la construction de bin/debug à bin. (Clic droit sur la solution >> Propriétés >> Construire >> Sortie)

  • Si vous avez une réécriture d'URL, vous devrez installer Réécrire une URL sur votre IIS .

  • Accédez à votre fichier applicationhosts.config (généralement à un endroit comme C:\Users\username\Documents\IISExpress\config) et renommez le fichier en applicationhostsOLD.config.

  • Nettoyez et reconstruisez votre projet. Vous devrez peut-être aller manuellement vider le bac.

Maintenant, vous devriez être prêt à partir.

1
maxshuty

J'ai essayé toutes les solutions énumérées ci-dessus et aucune d'entre elles n'a fonctionné. J'ai finalement créé une nouvelle page Web (formulaire Web) et la copie a bloqué tout le code (les fichiers cs et aspx) de l'ancienne, j'ai supprimé l'ancien fichier cs et aspx, recompilé et maintenant je suis de retour dans les affaires. Je sais que cela n'a aucun sens. Cela n'aurait pas dû avoir d'importance, mais cela a fonctionné.

0
SteveFerg

Je viens de recevoir cette erreur aujourd'hui. Il s’avère que c’est parce que j’ai ramené par erreur le fichier de projet à une version antérieure ne contenant plus la page.

0
costa

Reconstruire/republier mon projet/solution sur le serveur ne m'aide en rien, et je doute que cela puisse aider autant de personnes à sortir de cette situation difficile. Pour moi, j'ai fait quelques choses pour résoudre ce problème qui m'a finalement sorti de ce "trou". 

J'avais essayé d'utiliser une liaison sur le site Web, mais cela ne fonctionnait pas. J'ai essayé d'appeler le site avec http://localhost/Report.aspx (ma page d'accueil était celle que j'avais choisie, mais je ne voulais pas appeler Default.aspx. J'allais mettre à jour la section "Documents par défaut" avec le nom) lorsque j'ai reçu l'erreur d'analyse que l'OP a vue. J'ai donc essayé certaines choses:

J'ai arrêté le site Web de l'ancien projet et construit un autre projet Web simple, avec «bonjour», une étiquette sur la page et rien d'autre. J'avais une ligne dans le Page_Load pour renseigner la propriété Text de l'étiquette avec "world!", Juste pour m'assurer que cette partie fonctionnait. J'ai créé un nouveau site Web sur le port 80 et transféré le contenu publié de mon site sur le serveur. Ainsi, même si .NET 4.5 était installé sur le serveur (et que j'avais exécuté la commande aspnet_regiis -i à partir du répertoire 4.0) et que le pool d'applications de IIS que j'utilisais pour ce nouveau projet était défini sur 4.0, Le navigateur s’est plaint du fait que le composant Web.config contenait un targetFramework=4.5.2, qui est la structure par défaut de Visual Studio 2015. J'ai donc installé .NET 4.6 (NDP46-KB3045557-x86-x64-AllOS-ENU.exe), redémarré le serveur, puis mon site simple a fonctionné. J'ai ensuite supprimé ce site. Tout ce que je voulais faire, c'était de prouver que les étapes d'installation étaient précises et que le serveur pouvait gérer un site.

Alors je suis retourné à mon projet/site d'origine - j'ai supprimé et recréé le site Web. J'ai mis le pool d'applications dans celui que j'avais créé à l'origine pour cette tâche, et dont je m'assurais qu'il exécutait .NET 4.0. Une fois que j'ai fait cela, j'ai accédé à mon site et tout a fonctionné avec http://localhost/Report.aspx. Donc, il me semble que la version du .NET Framework que vous utilisez est la cause.

0
vapcguy

Message d'erreur d'analyse: Impossible de charger le type _ _

Après avoir suivi toutes les suggestions suggérées dans les commentaires ci-dessus, sans succès, actualiser (charger) le contenu de/bin sur le serveur a fonctionné. Les fichiers téléchargés dans bin sont les suivants: dll, pdb et xml. Je ne sais pas qui l'a fait.

Le problème que j’ai rencontré ici a été provoqué par le changement de nom d’un fichier ( _ . Aspx) dans l’Explorateur de solutions.

0
Neil

Veuillez vérifier l'espace de noms et le nom de la classe à tous les endroits. Dans un cas, un membre de l'équipe a changé d'espace de nom et j'utilisais l'ancien espace de nom dans un fichier .aspx. Cela posait problème. J'ai mis à jour l'espace de noms et cela a fonctionné.

0
Sanjay Sharma

Il est probable que vous ayez renommé quelque chose. Recherchez la déclaration de classe dans le fichier Global.asax.cs et assurez-vous que l'espace de nom et le nom de la classe correspondent à exactement ce qui se trouve dans le fichier asax. Cela inclut le cas! Pouvez-vous copier/coller l’espace de nommage et la déclaration de classe du fichier .cs dans un post ici afin que nous puissions comparer?

0
DiskJunky

Essayez d’ouvrir votre projet en tant que Projet/Solution, cela résoudra probablement l’erreur. Ce type d'erreur Impossible de charger le type .... se produit lorsque nous essayons d'ouvrir le projet en tant que site Web.

J'ai essayé d'ouvrir mon projet comme solution et cela a résolu mon problème.

0
ankita shrivastava

Je réparais mes espaces de noms dans notre projet de base et j'ai commencé à voir cette erreur sur un autre projet qui en faisait référence par la suite. J'ai dû supprimer la référence au projet de base et l'ajouter de nouveau, puis il a recommencé à fonctionner.

0
OJisBad