2017-06-13 6 views
0

Ich habe mir zwei Tage lang die Haare ausgerissen. Ich habe wahrscheinlich Dutzende von SO-Vorschlägen gelesen und befolgt und bekomme immer noch einen Parserfehler.Parser Fehler Konnte den Typ [Namespace] nicht laden .Global

TL; DR:

Wir haben Dutzende von Dingen versucht, unsere Website von Parser-Fehler ohne Erfolg zu befreien.

Geschichte:

Wir hatten ein perfekt funktionierendes ASP.NET/JavaScript/AJAX gestern Website, dass unsere gesamte Produktionsfläche für die Verfolgung von Leiterplatten durch den Montageprozess verwendet. Ich habe eine Sicherungskopie davon erstellt und die UI-Änderungen implementiert und Fehler erhalten. Kopierte die Sicherungskopie oben auf der Website und alles war gut (außer die Änderungen wurden nicht bereitgestellt). Ich habe das mehrmals versucht und jedes Mal mit dem Backup wiederhergestellt.

Über Nacht dachte ich über nur eine Teststelle zu schaffen, um, zu implementieren und zu statt Schneiden & Einfügen, wie ich vorher getan hatte, benutzte ich Web in der IDE VS 2010 Veröffentlichen Sie auf die Testort, die ‚didn t Arbeit (es entfiel nur gut, aber gleiche oder ähnliche Parser-Fehler).

jedoch ...

Nun, egal, was ich tue, ist die Hauptproduktionsstätte * aus irgendeinem Grund gebrochen und versucht, die Website mit der Sicherung zu ersetzen, nicht mehr funktioniert, und wir haben verbracht den ganzen Tag bisher versucht dieses zu debuggen. Mein Kollege baut derzeit ein Minimum an Platz auf der Seite auf, damit unsere Produktionsarbeiter nachhaken können, während wir das klären.

Was wir versucht haben:

ziemlich jeder Vorschlag in diesem SO question, as well as this SO question, und diese SO question. Wahrscheinlich haben wir ein paar mehr vergessen.

  • Wir haben die Test-Site von dem Webserver gelöscht, da beide Websites, um die exakt gleichen Namen für die default.aspx-Datei verwendet (nicht sicher, ob dies ein Problem war, aber seit dem Produktionsstandort unserer Fabrik verwendet nuked ist, gibt war nicht mehr notwendig für die Teststelle, bis wir die Produktionsstätte erreichen können).
  • Wir haben das \ bin & \ obj Verzeichnisse gelöscht haben & wieder aufgebaut auf unsere beiden Boxen dev sowie dafür gesorgt, dass der Ausgabepfad in der Registerkarte Build eingestellt ist: bin \
  • Die Anwendung läuft im Debug just fine/Freigabe auf meiner Dev Box und meiner Mitarbeiterbox.
  • Wir haben die Website auf dem IIS-Server mehrmals gelöscht und neu erstellt.
  • Wir haben eine neue Website & dort eingesetzt (gleiche Ausgaben) erstellt.
  • Wir haben die Global.asax-Dateien aus [Projekt]> Hinzufügen> Neues Objekt> Globale Anwendungsklasse in unseren beiden Dev-Boxen entfernt und neu erstellt.
  • Wir haben Dutzende Male neu kompiliert, heruntergefahren & starteten die IDE vor & nach der Neukompilierung (ich kann nicht sehen, wie dies einen Unterschied machen würde, aber es wurde mehr als einmal vorgeschlagen).
  • Wir haben versucht, aus einer anderen IDE/dev-Box bereitzustellen.
  • Auf dem Webserver haben wir den Anwendungspool zurück & zwischen .NET 2.0 & .NET 4.0 geändert (wo war es als wir angefangen haben).
  • Wir haben versucht, CodeBehind to CodeFile. umbenennen (hat nicht funktioniert, gleichen Fehler).
  • Auf dem Webserver haben wir sichergestellt, dass die Site im Verzeichnis Browsing aktiviert wurde (dies scheint irgendwie umgeschaltet zu werden, nicht sicher warum, aber wir bekommen manchmal 404 Fehler, die uns sagen, dass es umgeschaltet wird).
  • Auf dem Webserver haben wir überprüft, dass IIS Pass-Through-Authentifizierung verwendet, und die Anwendung verwendet den globalen Administrator für den Zugriff und verfügt über alle erforderlichen Berechtigungen.
  • Auf dem Webserver laufen alle unsere anderen Websites immer noch gut.
  • Ich bin sicher, ich vergesse einige Dinge, die wir versucht haben.

Umwelt:

WebServer: Server 2012 w/IIS 8.5

Dev Boxen: Windows 7 Pro 64bit, w/VS 2010/2017 (in diesem Szenario nicht verwendet, aber wir haben es).

Anwendung: ASP.NET 3.5, mit JavaScript, JQuery, AJAX am Front-End, mit C# [WebMethod] s am Backend im Gespräch mit MariaDB (MySQL).

* Update:

Mein Mitarbeiter gerade die Schürf-by-til-wir-fix-it-Website und ist genau die gleiche Parser Problem zu schlagen. Jetzt erstellt er stattdessen eine WinForms App. Das führt mich zu der Annahme, dass es ein globaleres Problem als wir verstehen, aber alle unsere anderen Websites auf dem gleichen IIS-Server laufen immer noch gut, so dass es nicht serverweit sein kann oder sie würden nicht funktionieren.

tatsächliche Fehler wir sehen:

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

Ich habe festgestellt, dass manchmal das Löschen des bin-Verzeichnisses und die Bereitstellung einer neuen Kopie funktioniert. Ich weiß nicht, ob du das noch ausprobiert hast oder nicht. –

+0

Ja, wir haben das mehrmals versucht. – delliottg

+0

Können Sie uns einen Stack-Trace zeigen? –

Antwort

0

war ich endlich in der Lage zu klären, was falsch war. Wir drehten eine alte VM hoch, die eine funktionierende Kopie der fraglichen Software hatte, aber nicht die anderen Websites. Wir konnten unsere Produktionsebene auf der VM so positionieren, dass ihre Arbeit ungehindert war. Dann kam die Frage auf, wie schwierig es sein würde, die anderen Websites auch auf der VM zu betreiben. Nun, es stellte sich heraus, dass es nicht zu schwierig war, aber es gab einige Herausforderungen, insbesondere das Aktivieren von 32-Bit-Anwendungen, das Festlegen einer Standardseite und das Deaktivieren der Formularauthentifizierung. Nachdem ich die Einstellungen auf dem Live-Server festgelegt hatte, konnte ich die neuen Websites erfolgreich auf der VM anzeigen. Also habe ich das Problem mit der Original-Site rückwärts bearbeitet, indem ich fast die genauen Einstellungen verwendet habe, und voila, die Site hat angefangen zu arbeiten.

Während des Debakels letzte Woche, ich weiß, dass ich alle diese mit Ausnahme der Standardseite versucht (unsere Abkürzungen zu den verschiedenen Websites haben alle spezifische Seitennamen, so war es nicht notwendig). Ich glaube, ich habe sie erst am letzten Freitag in der richtigen Kombination ausprobiert.

Hoffentlich hilft dies jemand anderen da draußen, um noch ein paar Dinge zu versuchen, wenn es sich um einen Parser-Fehler handelt.

Verwandte Themen