解析器错误无法加载类型[命名空间]。全局

问题描述:

我一直在这里撕掉我的头发约两天。我已经阅读并遵循了大概几十个SO建议,而且我仍然收到解析器错误。解析器错误无法加载类型[命名空间]。全局

TL; DR:

我们试过数十事情摆脱我们的解析器错误的网站无济于事。

历史:

我们昨天有一个功能完善的ASP.NET/JavaScript的/ AJAX网站,我们整个生产车间使用,通过装配过程跟踪电路板。我做了一个备份并部署了UI更改并开始出现错误。复制网站顶部的备份副本,一切正常(除非未部署更改)。我试了几次,每次都用备份恢复。

一夜之间,我想到刚刚创建一个测试站点我以前做了部署和来,而不是切割&粘贴,我用在VS 2010 IDE的Web发布到试验场,这没”工作(它部署得很好,但相同或相似的解析器错误)。

但是...

现在,无论我做什么,主要的生产基地被打破*由于某种原因,试图取代与备份不再适用于网站,我们已经花了迄今为止一整天都在试图调试这一点。我的同事目前正在建立一个最低限度的站点,以便我们的生产工作人员在我们分拣的时候抓取。

我们已经试过:

几乎每一个建议,在此SO questionas well as this SO question,这SO question。可能还有几个我们已经忘记了。

  • 我们从网络服务器中删除测试现场,因为这两个网站的Default.aspx文件(不知道这是一个问题,使用完全相同的名称,但由于在生产现场我们的工厂采用的是核爆,有不再需要测试站点,直到我们能够获得生产站点)。
  • 我们已经删除的\ bin & \ OBJ目录&上重建了我们的开发盒以及确信,在Build标签的输出路径设置为:BIN \
  • 应用程序运行在调试就好了/发布在我的Dev Box和我的同事的盒子上。
  • 我们已经多次删除并重新创建IIS服务器上的网站。
  • 我们创建了一个新网站&(相同的问题)。
  • 我们已经从我们的开发箱中的[Project]> Add> New Item> Global Application Class中删除并重新创建了Global.asax文件。
  • 我们已经重新编译了几十次,关闭&在重新编译之后重新启动IDE之前&(我看不出有什么区别,但建议不止一次)。
  • 我们已经尝试从不同的IDE /开发盒进行部署。
  • 在Web服务器上,我们已经改变了应用程序池回&来回.NET 2.0 & .NET之间4.0(它在哪里,当我们开始)。
  • 我们尝试了重命名CodeBehind to CodeFile.(没有工作,同样的错误)。
  • 在Web服务器上,我们已经取得了一定的网站在目录浏览启用(这似乎得到某种方式切换,不知道为什么,但我们有时会404错误,它告诉我们它的切换)。
  • 在网络服务器上,我们已验证IIS正在使用通过身份验证,并且应用程序正在使用全局管理员进行访问,并具有所需的所有权限。
  • 在网络服务器上,我们所有的其他网站仍然运行良好。
  • 我确定我忘记了一些我们尝试过的东西。

环境:

的WebServer:Server 2012的W/IIS 8.5

开发框:Windows 7的专业版64位,W/VS二千零十七分之二千零十(在这种情况下不使用,但我们有它)。

应用:ASP.NET 3.5,使用JavaScript,JQuery的,AJAX在前端,用C#[的WebMethod] S于后端交谈MariaDB的(MySQL的)。

*更新:

我的同事刚刚完成了刮按直到-WE-FIX-IT网站,并击中完全相同的解析器问题。所以现在他正在创建一个WinForms应用程序。

这使我相信有比我们了解一个更加全球性的问题,但同样的IIS服务器上所有我们的其他网站仍然运行得很好,因此它不能是服务器宽,否则将无法正常工作。

实际的错误,我们看到:

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 

堆栈跟踪:

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

我发现有时删除bin目录并部署全新的副本。我不知道这是否是你尝试过或没有。 –

+0

是的,我们已经尝试过多次。 – delliottg

+0

你能告诉我们堆栈跟踪吗? –

我终于能理清什么是错的。我们创建了一个旧虚拟机,该虚拟机拥有该软件的工作副本,但没有其他网站。我们能够将我们的生产车间指向虚拟机,以便他们的工作畅通无阻。然后问题出现了,让其他网站启动并运行在虚拟机上有多难?那么,因为它不是太困难,但有几个挑战,特别是启用32位应用程序,设置默认页面,并禁用表单身份验证。一旦我将这些设置与实时服务器上的设置相匹配,我就可以使新站点在虚拟机上成功显示。因此,我使用几乎准确的设置将原始网站的问题反向工作,瞧,该网站开始工作。

纵观上周的崩溃,我知道我尝试了所有这些与默认页面的异常(我们的短切到各个网站都有特定的页面名称,所以这是没有必要的)。我想我只是在上周五之前才从正确的组合中尝试过。

希望这可以帮助其他人添加到另一堆事情来处理解析器错误时尝试。