Dans mon application .Net 2.0 Asp.net WebForms, j'ai mon Global.asax contenant le code suivant:
<%@ Application CodeBehind="Global.asax.cs" Inherits="MyNamespace.Global" Language="C#" %>
Cependant, lorsque je construis, j'obtiens une erreur indiquant:
Impossible de charger le type «MyNamespace.Global».
Cela semble être dû au fait que l'espace de noms MyNamespace (défini dans le code derrière le fichier Global.asax.cs) n'est pas vu par le compilateur dans le fichier Global.asax (ne s'affiche pas dans R # intellisence ..). Cela s'est avéré être une noix très difficile à casser ... toute aide sera appréciée!
Remarque: Global.asax et Global.asax.cs se trouvent dans le même dossier.
Note 2: lors de la compilation à partir de l'invite vs avec csc, il se compile correctement
Réponses:
Une situation que j'ai rencontrée et qui a causé ce problème est lorsque vous spécifiez la plate-forme pour une construction via "Build Configuration".
Si vous spécifiez x86 comme plate-forme de construction, visual studio attribuera automatiquement bin / x86 / Debug comme répertoire de sortie pour ce projet. Cela est parfaitement valable pour les autres types de projets, sauf pour les applications Web où ASP.NET s'attend à ce que les assemblys soient générés dans le dossier Bin.
Ce que j'ai trouvé dans ma situation, c'est qu'ils étaient envoyés aux deux (Bin et Bin / x86 / Debug), à l'exception que certaines des dll, et inexplicablement la plus importante étant votre dll d'application Web, manquant dans le Bin dossier.
Cela a évidemment causé un problème de compilation et par conséquent l'exception "Impossible de charger le type Global". Le nettoyage de la solution et la suppression des assemblys n'ont fait aucune différence pour les générations suivantes. Ma solution consistait simplement à changer le chemin de sortie dans les paramètres du projet pour l'application Web en Bin (plutôt que bin / x86 / Debug).
la source
Avez-vous changé l'espace de noms de votre projet? J'ai vu cela se produire occasionnellement lorsque j'ai modifié l'espace de noms dans la boîte de dialogue Propriétés du projet, mais Visual Studio n'a pas modifié la
namespace
déclaration dans les fichiers de code existants.la source
Je suis nouveau dans le développement asp .net et j'ai rencontré le même problème.
J'ai mis à jour la classe en tant que
partial
classe et cela a bien fonctionné.la source
J'ai redémarré Visual Studio et l'erreur a disparu!
la source
En voici un autre pour les livres. Il semble que cela se produit lorsque vous lancez plusieurs applications Web à partir du même numéro de port.
En gros, j'ai quelques branches sur lesquelles je travaille, j'ai une branche principale et une branche intermédiaire et une branche release. Lorsque j'ai changé de branche vers la branche intermédiaire, j'ai remarqué qu'elle utilisait la même configuration d'adresse de port, j'ai donc choisi de changer cela. J'ai ensuite reçu un autre avertissement indiquant que cette réservation était en conflit avec une autre application configurée. Le serveur IIS Express est sensible à ce sujet et pour quelque raison que ce soit, il modifie la configuration.
En choisissant simplement un troisième port non affecté, ce problème a disparu car il mappe ensuite le port à un nouveau mappage de répertoire (mes branches sont situées différemment sur le disque). J'ai remarqué cela parce que j'ai essayé de changer le nom du type pointé par,
Global.asax
mais le nom du type était inchangé même après le redémarrage du serveur, donc clairement, le code que je changeais n'était pas reflété par le déploiement IIS Express.Donc, avant de perdre trop de sommeil à ce sujet, essayez de modifier le numéro de port IIS actuellement utilisé pour exécuter le projet Web.
la source
Fonctionne bien pour moi dans VS 2015. Maintenant, je peux utiliser l'événement mondial. Mon
Global.asax
fichier a cette ligneEt je crée un fichier de classe
Global.asax.cs
qui se trouve dans unAppCode
dossier qui ressemble àJ'espère que cela aidera
la source
Vérifiez l'action de génération de Global.asax.cs. Il doit être défini sur Compile.
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Global.asax.cs et accédez à Propriétés. Dans le volet Propriétés, définissez l'action de génération ( sans débogage).
Il semble que VS 2008 n'ajoute pas toujours correctement les fichiers .asax (.cs) par défaut.
la source
J'ai rencontré une erreur similaire lors d'un
tag en tant qu'enfant (le premier enfant) du
tag dans mon Web.config . J'avais inséré les balises dans mon web.config pour tenter d'empêcher l'héritage de configuration dans une application déployée sous le «site Web par défaut» dans IIS.
la source
Dans ma situation, il était lié au type de site Web / application Web du projet. Nous sommes récemment passés à MVC et avons dû le changer en Application Web.
La solution était donc simple: sélectionnez votre site Web dans l'Explorateur de solutions et supprimez-le de la solution, puis faites un clic droit sur la solution et sélectionnez Ajouter -> Projet existant ( pas de site Web ), recompilez le site Web.
la source
Ancien message, mais je fais cette erreur en essayant de convertir un projet de site Web en projet d'application Web.
Suivez les instructions sur ce lien . J'ai toujours l'erreur global.asax mais tout ce que j'ai fait a été de le supprimer et de le rajouter en cliquant avec le bouton droit sur le projet dans Visual Studio et en sélectionnant Ajouter un nouvel élément. Ajoutez le fichier global.asax et cela a fonctionné.
la source
Aucun de ceux-ci n'a fonctionné pour moi, malheureusement. Le correctif que j'ai trouvé était plus spécifique au développement, en particulier au débogage sur votre machine locale. Malheureusement, cela ne résout pas vraiment le problème comme je l'espérais, mais si vous êtes à bout de souffle, cela pourrait vous permettre de recommencer.
TL; DR: Dans les propriétés du projet, dans l'onglet Web, sous Serveurs, sélectionnez Utiliser le serveur Web IIS local. L'adresse,
était déjà rempli (j'ai IIS7, .NET 4.0). Ce qui a été initialement sélectionné était «Utiliser Visual Studio Development Server» avec un chemin virtuel de «/»
Ce qui est vraiment déroutant pour moi, c'est le fait que rien d'autre n'a fonctionné, j'ai parcouru toutes les suggestions que j'ai pu trouver sur SO, et rien ne fonctionnait. La chose étrange est que l'erreur s'est (apparemment, cela fait quelques mois que j'ai regardé pour la dernière fois) s'est manifestée lorsque j'ai ajouté un nouveau fichier ascx qui était similaire à un fichier existant qui a été ajouté à partir d'un ancien projet .net 2.0 (je pense) cela permettrait une gestion personnalisée des utilisateurs depuis l'application. Cela fonctionnait, magnifiquement, pendant longtemps, jusqu'à ce que j'essaye d'ajouter ce nouveau fichier. Après l'avoir ajouté et vu l'erreur, j'ai rapidement annulé toutes les modifications, mais l'erreur Global.ascx ne disparaîtrait pas, n'épuisant même pas tout le projet et obtenant les dernières informations du contrôle de code source.
la source
J'avais converti ma solution de VS2003 à VS2010 et j'avais eu des problèmes pour convertir le projet d'application Web.
J'ai rencontré exactement le même problème et aucune des réponses n'a fonctionné pour moi.
Ce qui a fonctionné pour moi était:
il semblerait que les problèmes que j'ai rencontrés lors de la conversion aient supprimé le projet d'application Web de la construction pour une raison quelconque.
Espérons que cette réponse aide quiconque a le même problème ...
la source
Si vous reconstruisez ou modifiez un projet et déplacez des fichiers à partir d'un ancien, assurez-vous de cocher le bloc Hériter de votre fichier global. Dans mon cas, l'ancien projet / solution s'appelait intranet, et je l'avais recréé en tant qu'intranet, mais lorsque je me suis déplacé sur les fichiers, il n'aimait pas les minuscules (duh). Faites simplement une recherche générale des noms des fichiers.
la source
Modifiez le GUID de l'assembly. Cela résout de nombreux problèmes, j'ai trouvé.
la source
J'ai eu un problème similaire où je recevais cette erreur sur un projet.
Après avoir passé un certain temps, je soupçonne une fonction avec des erreurs possibles dans une classe .. plus tard commenter cette fonction spécifique mon problème est résolu.
Je ne sais pas pourquoi Visual Studio ne m'a pas donné cette erreur spécifique au moment du débogage. Mais cette erreur peut se produire en raison d'erreurs dans le fichier de classe.
la source
Ce travail pour moi: Première chose: il semble que peu importe ce que vous avez dit à Visual Studio, l'ide regarde toujours le fichier dans: bin (pour l'application web et bien sûr dans mon cas) Donc, même quand j'ai dit à Visual Studio un chemin spécifique pour charger le fichier, l'ide continue à chercher le mauvais chemin. Donc, je change dans le: Build / Configuration Manager le type de sortie en: Release (précédemment, je nettoie la solution, même manuellement) donc, lorsque le fichier .dll a été créé, je suis déplacé manuellement vers le dossier "bin" sous le projet / solution dossier. J'espère que cela vous sera utile !!
la source
Dans mon cas, c'est à cause de mon processeur cible (x64) que je l'ai changé en x86, nettoyé le projet, redémarré VS (2012) et reconstruit le projet; puis il était parti.
la source
Quand j'ai rencontré ce problème le plus récemment, j'ai essayé tout ce qui est mentionné ici, mais en vain. Après m'être arraché les cheveux, j'ai décidé d'essayer de supprimer toute ma base de code (oui, assez désespérée!), Puis de tout télécharger à nouveau à partir de mon référentiel de code. Après avoir fait cela, tout a bien fonctionné une fois de plus.
Cela semble être une solution extrême, mais j'ai juste pensé l'inclure ici car cela n'a pas été mentionné auparavant dans ce fil.
(Notez que l'autre fois que j'ai rencontré ce problème, c'est quand le Global.asax héritait d'un composant qui devait être enregistré sur la machine hôte. Cela manquait donc j'ai eu ce même problème).
TL, DR; Si toutes les réponses de ce fil de discussion ne fonctionnent pas pour vous, essayez de supprimer puis de télécharger à nouveau l'intégralité de votre base de code!
la source
J'ai rencontré ce problème à quelques reprises et dans chaque cas, je reconstruisais un ordinateur ou je passais à un nouvel ordinateur. Ma première étape (en plus de mettre à jour la machine et d'installer Visual Studio) consiste à extraire mes projets de Git et à les tester.
J'ai rencontré cette erreur à chaque fois parce que j'ai essayé d'accéder à mon code local avant de le compiler. Vous voyez, j'ai configuré Git et Subversion pour ignorer mes dossiers bin / build, donc après une extraction de mon référentiel, j'ai oublié d'exécuter une construction qui extrait les packages requis de Nuget (puisque Git / SVN les ignore aussi) et crée le DLL nécessaires pour exécuter mon application.
Je doute que cela résoudra les problèmes de la plupart des gens, mais je ne l'ai pas vu sur la liste des solutions potentielles, alors j'ai pensé l'ajouter.
la source
Dans mon cas, j'avais ajouté Global.asax à un projet WCF pour l'expérimenter, mais j'ai décidé de le supprimer. Je l'ai supprimé de l'Explorateur de solutions, mais comme il était toujours dans le dossier, le pipeline le trouvait toujours et provoquait cette erreur.
J'ai supprimé Global.ASAX et GLobal.asax.cs du système de fichiers et cela a résolu l'erreur.
la source
Ayant été dans le jeu de développement pendant près de 20 ans, cette châtaigne a continué à me tourmenter à travers de multiples projets.
En tant que tel, aujourd'hui, tout en rencontrant à nouveau ce même problème, par rapport à un autre projet, j'ai décidé d'enquêter plus avant et je pense que cela est lié à l'emplacement du dossier Bin ... ou plus précisément, au chemin de sortie du dossier bin.
Pour moi, pour une application Web basée sur un service simple configurée pour exécuter / déboguer via IIS, cela changeait le chemin de sortie de bin \ debug à bin \ qui le résolvait
Espère sérieusement que cela aide.
la source
J'ai été déconcerté par le même problème. J'ai essayé de supprimer et et le
global.asax
(fermé VS2010 avant d'ajouter). Nettoyé le projet / la solution, vérifié les changements dans la configuration de l'application Web et d'autres éléments qui avaient fonctionné pour d'autres personnes ici dans les threads SO. J'ai finalement nettoyé la solution, supprimé les dossiers bin / obj et arrêté tous les serveurs de développement VS2010 en cours d'exécution, puis j'ai annulé toutes les modifications et j'ai trouvé que l'application fonctionnait à nouveau. J'ai refait les mêmes choses et maintenant ça marche bien.C'est arrivé à nouveau et cette fois cette solution a fonctionné pour moi.
la source
allez dans Configuration Manager sous les propriétés de votre solution. Ensuite, assurez-vous que tous les projets et en cours de construction, et ce ne sera pas un problème.
la source
J'ai dû supprimer (dupliquer) les fichiers du disque qui n'étaient pas inclus dans le projet. Il semble que les doublons aient été causés par un changement de nom échoué. Les noms de fichiers étaient différents, mais le même code.
Après avoir supprimé tous les fichiers oof. *, J'ai pu scanner.
la source
dans mon cas, c'était IISExpress pointant vers le même port que IIS pour le résoudre, allez à
et recherchez le port, vous trouverez la
<site>...</site>
balise que vous devez supprimer ou commenterla source
J'ai eu ce problème lors du déploiement sur le serveur prod uniquement. Dans mes autres environnements, cela fonctionne ... Je viens de supprimer des éléments dans le dossier bin, puis de les republier et cela fonctionne ensuite.
la source
Si vous utilisez Visual Studio, vous essayez probablement d'exécuter l'application en mode Release, essayez de le changer en mode Debug.
la source
J'ai essayé de reconstruire la solution et d'effacer les fichiers temporaires ASP.NET sans succès.
Mais après l'exécution de IISRESET, l'erreur a disparu.
Mise à jour : j'ai eu à nouveau le même problème 1 mois plus tard. J'ai remarqué que MyWebsite.DLL existe dans le dossier bin, mais n'existe pas dans les fichiers ASP.NET temporaires (C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Fichiers ASP.NET temporaires). J'ai essayé quelques choses, qui sont suggérées à ce sujet et "Message d'erreur de l'analyseur: impossible de charger le type" dans les questions Global.asax (j'ai en fait oublié ma propre réponse), mais l'erreur a disparu à nouveau seulement après IISRESET
la source
Eh bien, dans mon cas VS 2017, la charge de la solution légère était à l'origine de ce problème. Je l'ai désactivé et redémarré VS puis reconstruit ma solution et le problème a disparu.
la source
Je voulais juste ajouter mes deux cents. Je recevais la même erreur et j'ai essayé toutes les suggestions en vain. Ma situation est probablement différente?
Il s'avère qu'un fichier "AssemblyInfo.cs" généré automatiquement contenait des espaces superflus, ce qui m'empêchait de lancer l'application Web (via le débogage). Voici à quoi ressemblait le fichier:
Après avoir tué les espaces dans AssemblyCompany et AssemblyCopyright, j'ai finalement pu créer et lancer le projet.
Observé dans l'environnement suivant: --Visual Studio 2017 Community version 15.3.0 --Win 7 x64 Enterprise --Nouveau projet> Visual C #> Web> Application Web ASP.NET> Web Forms
la source