web-dev-qa-db-fra.com

Erreur d'analyse Global.asax après une modification mineure et revenir à la version précédente

Le projet en contexte est:

  • Application Web ASP .NET
  • .NET Framework: 4
  • Cible de la plate-forme: x86
  • IDE: Visual Studio 2010 Ultimate SP1
  • Plusieurs projets en solution avec ASP .NET étant le projet de démarrage.

Il est en production depuis des mois sans problèmes jusqu'à hier. J'ai nettoyé le [Global.asax] file (supprimé à l'aide d'instructions inutilisées, refactorisé, etc.), a exécuté la solution et a obtenu l'erreur suivante:

Description: Une erreur s'est produite lors de l'analyse d'une ressource requise pour traiter cette demande. Veuillez consulter les détails d'erreur d'erreur d'analyse suivants et modifier votre fichier source en conséquence.
Message d'erreur de l'analyseur: Impossible de charger le type 'CloudTech.ATS.WebClient.Global'.
Fichier source: /global.asax Ligne: 1
Erreur source: Ligne 1: <%@ Application CodeBehind="Global.asax.cs" Inherits="CloudTech.ATS.WebClient.Global" Language="C#" %>

Error snapshot

Voici le Global.asax Markup:

<%@ Application CodeBehind="Global.asax.cs" Inherits="CloudTech.ATS.WebClient.Global" Language="C#" %>

Voici le Code Global.asax.cs (avec le code interne supprimé):

using System;
using System.Linq;

namespace CloudTech.ATS.WebClient
{
    public class Global: System.Web.HttpApplication
    {
    }
}

Après avoir lutté avec cette erreur pendant un certain temps, j'ai cherché, redémarré mon ordinateur, effectué un nettoyage complet de la solution, forcé de reconstruire mais en vain. Frustré, j'ai finalement changé uniquement la cible de l'application Web en "Any CPU" et cela a fonctionné. Malheureusement, "Any CPU" n'est pas une option ou une solution au problème en question. Le changer en "x86" ramène la même erreur. Cela s'est produit une fois et depuis lors, aucune combinaison de plate-forme cible ou de configuration de débogage/version ne fonctionne plus (même erreur).

En outre:

  • Mes machines de développement sont toutes x64.
  • Archivé dans la solution, plusieurs collègues ont testé sur leurs machines (x86 et x64) avec le même résultat.
  • Le projet entier a été restauré dans un état propre il y a 3 jours et l'erreur persiste toujours!
  • Vérifié absolument, AUCUNE modification n'a été apportée aux fichiers Web.config ou à tout autre fichier de la solution.

Enfin, le seul changement à mes systèmes de développement a été les mises à jour de Windows (mises à jour de sécurité régulières) et j'ai essayé la solution sur des systèmes sans mises à jour avec les mêmes résultats.

Toute aide serait appréciée.

14
Raheel Khan

Le nettoyage de la solution et la suppression des assemblages n'ont fait aucune différence pour les versions suivantes. Ma solution était de simplement changer le chemin de sortie dans les paramètres du projet pour l'application Web en Bin (plutôt que bin/x86/Debug).

Source: - "Impossible de charger le type [Espace de noms] .Global" me causant du chagrin

21
Sain Pradeep

nous avons eu un problème similaire ici.

et ce que nous avons fait, c'était juste pour fermer l'IDE. et ouvrez-le à nouveau, puis générez, puis exécutez.

assez frustrant et déroutant.

9
AceMark

L'application Web ASP.NET standard a 2 fichiers dans le dossier solution:

  1. Global.asax
  2. Global.asax.cs

Assurez-vous que cette classe dans Global.asax.cs:

namespace YourWebAppNamespace
{
  public class MvcApplication : HttpApplication
  {
     ...

A le même/bon nom dans Global.asax:

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

J'ai rencontré un problème avec cela lorsque j'ai changé manuellement le nom de la classe dans Global.asax.cs fichier, donc pour le résultat j'ai eu la même erreur que toi et de mon point de vue, ça devrait être plus informatif. Je sais que cette question a déjà été répondue, mais mon cas peut peut-être être utile à quelqu'un.

5
ivamax9
  • à l'aide du Bloc-notes, modifiez votre fichier Global.asax pour vous assurer qu'il hérite de l'espace de noms de votre application Web
  • vérifier les propriétés du projet pour son nom d'assembly et son espace de noms par défaut
  • supprimez vos anciens assemblys du répertoire bin (les anciens assemblys de projet peuvent causer des problèmes!)

    bonne chance!

4
GoAntonio