Windows Azure Web Role Error: "Faulting application WaHostBootstrapper.exe"
The Web Role was stuck as below:
6:09:56 PM - Preparing...
6:09:56 PM - Connecting...
6:09:59 PM - Uploading...
6:11:15 PM - Creating...
6:12:28 PM - Starting...
6:13:20 PM - Initializing...
6:13:21 PM - Instance 0 of role AvkashTestWebRole is initializing
6:18:39 PM - Instance 0 of role AvkashTestWebRole is busy
6:21:51 PM - Instance 0 of role AvkashTestWebRole is stopped
6:21:51 PM - Warning: All role instances have stopped
6:22:23 PM - Instance 0 of role AvkashTestWebRole is busy
6:23:26 PM - Instance 0 of role AvkashTestWebRole is stopped
6:23:26 PM - Warning: All role instances have stopped
I logged into the Azure VM I saw exception logged in Application event log and BootStrapper logs
Following exception related with WaHostBootStrapper.exe was the first in list:
Log Name: Application
Source: Application Error
Date: 6/29/2011 7:40:42 PM
Event ID: 1000
Task Category: (100)
Level: Error
Keywords: Classic
User: N/A
Computer: RD00155D4224C7
Description:
Faulting application WaHostBootstrapper.exe, version 6.0.6002.18009, time stamp 0x4d6ac763, faulting module ntdll.dll, version 6.0.6002.18446, time stamp 0x4dcd9861, exception code 0xc0000005, fault offset 0x000000000001b8a1, process id 0xbe8, application start time 0x01cc36946462e8a0.
Following BootStrapper log shows the error with WaHostBootStrapper.exe which is stuck as below
[00001744:00001280, 2011/06/29, 19:57:47.150, 00040000] Process exited with 0.
[00001744:00001280, 2011/06/29, 19:57:47.150, 00010000] <- WaitForProcess=0x0
[00001744:00001280, 2011/06/29, 19:57:47.150, 00010000] <- ExecuteProcessAndWait=0x0
[00001744:00001280, 2011/06/29, 19:57:47.150, 00010000] -> WapRevertEnvironment
[00001744:00001280, 2011/06/29, 19:57:47.150, 00010000] <- WapRevertEnvironment=0x0
[00001744:00001280, 2011/06/29, 19:57:47.150, 00010000] -> WapModifyEnvironment
[00001744:00001280, 2011/06/29, 19:57:47.150, 00010000] -> WapUpdateEnvironmentVariables
[00001744:00001280, 2011/06/29, 19:57:47.150, 00010000] -> WapUpdateEnvironmentVariable
[00001744:00001280, 2011/06/29, 19:57:47.150, 00010000] <- WapUpdateEnvironmentVariable=0x0
[00001744:00001280, 2011/06/29, 19:57:47.150, 00010000] <- WapUpdateEnvironmentVariables=0x0
[00001744:00001280, 2011/06/29, 19:57:47.150, 00010000] -> WapGetEnvironmentVariable
[00001744:00001280, 2011/06/29, 19:57:47.150, 00100000] <- WapGetEnvironmentVariable=0x800700cb
[00001744:00001280, 2011/06/29, 19:57:47.181, 00010000] <- WapModifyEnvironment=0x0
[00001744:00001280, 2011/06/29, 19:57:47.181, 00040000] Executing Startup Task type=2 cmd=E:\plugins\RemoteAccess\RemoteAccessAgent.exe
[00001744:00001280, 2011/06/29, 19:57:47.181, 00010000] -> ExecuteProcess
[00001744:00001280, 2011/06/29, 19:57:47.181, 00040000] Executing E:\plugins\RemoteAccess\RemoteAccessAgent.exe.
[00001744:00001280, 2011/06/29, 19:57:47.181, 00010000] <- ExecuteProcess=0x0
[00001744:00001280, 2011/06/29, 19:57:47.181, 00010000] -> WapRevertEnvironment
[00001744:00001280, 2011/06/29, 19:57:47.181, 00010000] <- WapRevertEnvironment=0x0
[00001744:00001280, 2011/06/29, 19:57:47.181, 00010000] -> WapModifyEnvironment
[00001744:00001280, 2011/06/29, 19:57:47.181, 00010000] -> WapUpdateEnvironmentVariables
[00001744:00001280, 2011/06/29, 19:57:47.181, 00010000] -> WapUpdateEnvironmentVariable
[00001744:00001280, 2011/06/29, 19:57:47.181, 00010000] <- WapUpdateEnvironmentVariable=0x0
[00001744:00001280, 2011/06/29, 19:57:47.181, 00010000] <- WapUpdateEnvironmentVariables=0x0
[00001744:00001280, 2011/06/29, 19:57:47.181, 00010000] -> WapGetEnvironmentVariable
[00001744:00001280, 2011/06/29, 19:57:47.181, 00100000] <- WapGetEnvironmentVariable=0x800700cb
[00001744:00001280, 2011/06/29, 19:57:47.228, 00010000] <- WapModifyEnvironment=0x0
[00001744:00001280, 2011/06/29, 19:57:47.228, 00040000] Executing Startup Task type=0 cmd=E:\plugins\RemoteAccess\RemoteAccessAgent.exe /blockStartup
[00001744:00001280, 2011/06/29, 19:57:47.228, 00010000] -> ExecuteProcessAndWait
[00001744:00001280, 2011/06/29, 19:57:47.228, 00010000] -> ExecuteProcess
[00001744:00001280, 2011/06/29, 19:57:47.228, 00040000] Executing E:\plugins\RemoteAccess\RemoteAccessAgent.exe /blockStartup.
[00001744:00001280, 2011/06/29, 19:57:47.228, 00010000] <- ExecuteProcess=0x0
[00001744:00001280, 2011/06/29, 19:57:47.228, 00010000] -> WaitForProcess
Following event log entry shows the error is related with some of the DLL are missing:
Log Name: Application
Source: ASP.NET 4.0.30319.0
Date: 6/29/2011 7:49:54 PM
Event ID: 1310
Task Category: Web Event
Level: Warning
Keywords: Classic
User: N/A
Computer: Machine_Name
Description:
Event code: 3008
Event message: A configuration error has occurred.
Event time: 6/29/2011 7:49:54 PM
Event time (UTC): 6/29/2011 7:49:54 PM
Event ID: ************************
Event sequence: 1
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/********/*****************
Trust level: Full
Application Virtual Path: /
Application Path: E:\sitesroot\0\
Machine name: <Machine_Name>
Process information:
Process ID: 2788
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE
Exception information:
Exception type: ConfigurationErrorsException
Exception message: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective)
at System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()
at System.Web.Configuration.AssemblyInfo.get_AssemblyInternal()
at System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)
at System.Web.Compilation.BuildManager.CallPreStartInitMethods()
at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException)
Exception of type 'System.OutOfMemoryException' was thrown.
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.Load(String assemblyString)
at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective)
Request information:
Request URL: https:// <Internal_IP_Address>/default.aspx
Request path: /default.aspx
User host address: <Internal_IP_Address>
User:
Is authenticated: False
Authentication Type:
Thread account name: NT AUTHORITY\NETWORK SERVICE
Thread information:
Thread ID: 6
Thread account name: NT AUTHORITY\NETWORK SERVICE
Is impersonating: False
Stack trace: at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective)
at System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()
at System.Web.Configuration.AssemblyInfo.get_AssemblyInternal()
at System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)
at System.Web.Compilation.BuildManager.CallPreStartInitMethods()
at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException)
Launching web application using local IP address in the Virtual Machine I see the following error:
Server Error in '/' Application.
________________________________________
Exception of type 'System.OutOfMemoryException' was thrown.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.]
System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks) +567
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +192
System.Reflection.Assembly.Load(String assemblyString) +35
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +118
[ConfigurationErrorsException: Exception of type 'System.OutOfMemoryException' was thrown.]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +11396867
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +484
System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +127
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +334
System.Web.Compilation.BuildManager.CallPreStartInitMethods() +280
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +1087
[HttpException (0x80004005): Exception of type 'System.OutOfMemoryException' was thrown.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11529072
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4784373
________________________________________
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1
Note:
The key here is that “Out of memory exception could mislead” which is actually caused because of “some reference DLL is missing” at first place. See the exception hierarchy to understand it.
Solution:
A few references were not set to "Copy Local as true" and after setting all necessary references to "Copy Local as True" and then upgrade the deployment solved the problem.