2017-06-13 4 views
0

Je me suis arraché les cheveux pendant environ deux jours à ce sujet. J'ai lu et suivi probablement des dizaines de suggestions SO, et je reçois toujours une erreur d'analyseur.Erreur d'analyseur Impossible de charger le type [espace de nom] .Global

TL; DR:

Nous avons essayé des dizaines de choses à débarrasser notre site des erreurs d'analyse en vain.

Histoire:

Nous avions une ASP.NET parfaitement fonctionnelle/JavaScript/AJAX site hier que l'intégralité de notre site de production utilise pour les cartes de circuits de suivi à travers le processus d'assemblage. J'ai fait une sauvegarde de celui-ci et déployé les modifications de l'interface utilisateur et a commencé à obtenir des erreurs. Copié la copie de sauvegarde sur le site et tout s'est bien passé (sauf les modifications n'ont pas été déployées). J'ai essayé ceci plusieurs fois, chaque fois en récupérant avec la sauvegarde.

Pendant la nuit, je pensais simplement créer un site d'essai à déployer, et au lieu de couper & coller comme je l'avais fait auparavant, je Web Publication dans le VS 2010 IDE sur le site de test , qui n » ai pas t travail (il déployé très bien, mais même ou similaire erreurs d'analyse).

Mais ...

Maintenant, peu importe ce que je fais, le principal site de production est cassé * pour une raison quelconque, en essayant de remplacer le site avec la sauvegarde ne fonctionne plus, et nous avons passé toute la journée jusqu'à maintenant essayer de déboguer cela. Mon collègue travaille actuellement à la construction d'un site minimal pour permettre à nos travailleurs de la production de se débrouiller tout en réglant le problème.

Ce que nous avons essayé:

Quasiment toutes les suggestions dans ce SO question, as well as this SO question, et ce SO question. Probablement un peu plus nous avons oublié.

  • Nous avons supprimé le site de test du serveur Web depuis les deux sites utilisés exactement le même nom pour le fichier default.aspx (pas sûr que c'était un problème, mais depuis le site de production de notre plancher de l'usine utilise est atomisé, il n'était plus nécessaire pour le site d'essai avant que nous puissions mettre le site de production en place).
  • Nous avons supprimé le \ bin & \ répertoires obj & remises à neuf sur nos deux boîtes de dev, ainsi que fait en sorte que le chemin de sortie dans l'onglet Build est réglé sur: bin \
  • L'application fonctionne très bien dans debug/libère sur mon Dev Box et la boîte de mes collègues aussi.
  • Nous avons supprimé et recréé plusieurs fois le site Web sur le serveur IIS.
  • Nous avons créé un nouveau site Web & déployé là (mêmes questions).
  • Nous avons supprimé et recréé les fichiers Global.asax de [Projet]> Ajouter> Nouvel élément> Global Application Class dans nos deux boîtes de dev.
  • Nous avons recompilé des dizaines de fois, éteint & redémarré l'IDE avant & après recompilation (je ne vois pas comment cela ferait une différence, mais il a été suggéré plus d'une fois).
  • Nous avons essayé de déployer à partir d'un autre IDE/boîte de dev.
  • Sur le serveur Web, nous avons modifié le pool d'applications & entre .NET 2.0 & .NET 4.0 (où il était lorsque nous avons démarré).
  • Nous avons essayé de renommer CodeBehind to CodeFile. (ne fonctionnait pas, même erreur). Sur le serveur Web, nous nous sommes assurés que le site était activé dans la navigation dans les répertoires (cela semble être modifié, pas sûr pourquoi, mais nous avons parfois des erreurs 404 qui nous indiquent qu'il est basculé).
  • Sur le serveur Web, nous avons vérifié qu'IIS utilise l'authentification unique et que l'application utilise l'administrateur global pour l'accès et dispose de toutes les autorisations dont elle a besoin.
  • Sur le serveur Web, tous nos autres sites fonctionnent toujours correctement.
  • Je suis sûr que j'oublie certaines choses que nous avons essayées.

Environnement:

WebServer: Server 2012 w/IIS 8.5

boîtes Dev: Windows 7 64bit Pro, w/VS 2010/2017 (non utilisé dans ce scénario, mais nous avons il).

Application: ASP.NET 3.5, en utilisant JavaScript, JQuery, AJAX sur le front end, avec C# [WebMethod] s à l'arrière communiquant avec MariaDB (MySQL).

* Mise à jour:

Mon collègue vient de terminer l'éraflure par til-nous-fix-it site, et frappe le problème exact même analyseur. Alors maintenant, il crée une application WinForms à la place. Cela m'amène à croire qu'il y a un problème plus global que nous ne le croyons, mais tous nos autres sites sur le même serveur IIS fonctionnent encore très bien, donc ils ne peuvent pas être utilisés sur le serveur ou ne fonctionneraient pas.

erreur réelle que nous voyons:

Server Error in '/' Application. 

Parser Error 

Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. 

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

Source Error: 


Line 1: <%@ Application Codebehind="Global.asax.cs" Inherits="PCBIDRecord.Global" Language="C#" %> 

Source File: /global.asax Line: 1 

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.1087.0 

Stack Trace:

Event code: 3006 
Event message: A parser error has occurred. 
Event time: 6/13/2017 4:38:10 PM 
Event time (UTC): 6/13/2017 11:38:10 PM 
Event ID: 7effc328553b424c8f6005608ed8f11b 
Event sequence: 1 
Event occurrence: 1 
Event detail code: 0 

Application information: 
    Application domain: /LM/W3SVC/1/ROOT-1-131418706905858364 
    Trust level: Full 
    Application Virtual Path:/
    Application Path: C:\inetpub\wwwroot\PCBClient\ 
    Machine name: [REDACTED] 

Process information: 
    Process ID: 1316 
    Process name: w3wp.exe 
    Account name: IIS APPPOOL\PCBClient 

Exception information: 
    Exception type: HttpException 
    Exception message: Could not load type 'PCBIDRecord.Global'. 
    at System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() 
    at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() 
    at System.Web.Compilation.BuildManager.CallAppInitializeMethod() 
    at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) 

Could not load type 'PCBIDRecord.Global'. 
    at System.Web.UI.TemplateParser.ParseString(String text, VirtualPath virtualPath, Encoding fileEncoding) 
    at System.Web.UI.TemplateParser.ParseFile(String physicalPath, VirtualPath virtualPath) 
    at System.Web.UI.TemplateParser.ParseInternal() 
    at System.Web.UI.TemplateParser.Parse() 
    at System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType() 
    at System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider) 
    at System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() 
    at System.Web.Compilation.BuildProvidersCompiler.PerformBuild() 
    at System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp) 
    at System.Web.Compilation.BuildManager.CompileGlobalAsax() 
    at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() 

Could not load type 'PCBIDRecord.Global'. 
    at System.Web.UI.TemplateParser.ProcessException(Exception ex) 
    at System.Web.UI.TemplateParser.ParseStringInternal(String text, Encoding fileEncoding) 
    at System.Web.UI.TemplateParser.ParseString(String text, VirtualPath virtualPath, Encoding fileEncoding) 

Could not load type 'PCBIDRecord.Global'. 
    at System.Web.UI.TemplateParser.GetType(String typeName, Boolean ignoreCase, Boolean throwOnError) 
    at System.Web.UI.TemplateParser.ProcessInheritsAttribute(String baseTypeName, String codeFileBaseTypeName, String src, Assembly assembly) 
    at System.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes(IDictionary parseData) 



Request information: 
    Request URL: http://[REDACTED]/ 
    Request path:/
    User host address: [REDACTED] 
    User: 
    Is authenticated: False 
    Authentication Type: 
    Thread account name: IIS APPPOOL\PCBClient 

Thread information: 
    Thread ID: 6 
    Thread account name: IIS APPPOOL\PCBClient 
    Is impersonating: False 
    Stack trace: at System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() 
    at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() 
    at System.Web.Compilation.BuildManager.CallAppInitializeMethod() 
    at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) 


Custom event details: 
+0

J'ai trouvé que parfois supprimer le répertoire bin et déployer une nouvelle copie fonctionne. Je ne sais pas si c'est quelque chose que tu as essayé ou pas. –

+0

Oui, nous avons essayé cela, plusieurs fois. – delliottg

+0

Pouvez-vous nous montrer une trace de pile? –

Répondre

0

J'ai enfin pu démêler ce qui était faux. Nous avons créé une ancienne machine virtuelle qui avait une copie de travail du logiciel en question, mais n'avait pas les autres sites Web dessus. Nous avons été en mesure de pointer notre atelier de production sur le VM afin que leur travail soit sans encombre. Ensuite, la question a été soulevée, à quel point serait-il difficile de faire fonctionner les autres sites sur la VM? Eh bien, comme il s'est avéré pas trop difficile, mais il y avait plusieurs défis, en particulier l'activation des applications 32 bits, la définition d'une page par défaut, et la désactivation de l'authentification de formulaire. Une fois que j'ai obtenu ces paramètres pour correspondre aux paramètres sur le serveur en direct, j'ai été en mesure d'obtenir les nouveaux sites à apparaître avec succès sur la machine virtuelle. Donc, j'ai travaillé le problème avec le site d'origine à l'envers en utilisant presque les paramètres exacts, et voilà, le site a commencé à fonctionner. Tout au long de la débâcle la semaine dernière, je sais que j'ai essayé tous ces à l'exception de la page par défaut (nos raccourcis vers les différents sites ont tous des noms de pages spécifiques, donc ce n'était pas nécessaire). Je suppose que je ne les ai jamais essayés dans la bonne combinaison jusqu'à vendredi dernier.

Espérons que cela aide quelqu'un d'autre à ajouter encore à un tas de choses à essayer lorsqu'il s'agit d'une erreur d'analyseur.