You may experience “The configuration system has already been initialized” exception after installing the KB2844285


 

Background

Recently we have several cases related to the KB2844285 (MS13-052: Description of the security update for the .NET Framework 2.0 Service Pack 2 on Windows XP and Windows Server 2003: July 9, 2013). Customer reported that some of the web applications failed to work with the following exceptions in event logs:

 

Event Type:   Error

Event Source:               ASP.NET 2.0.50727.0

Event Category:           None

Event ID:        1334

Date:                              7/18/2013

Time:                              5:32:36 AM

User:                              N/A

Computer:     XXXXXINET30

Description:

Failed to initialize the AppDomain:/LM/W3SVC/1/ROOT

Exception: System.InvalidOperationException

Message: The configuration system has already been initialized.

StackTrace:  at System.Configuration.ConfigurationManager.SetConfigurationSystem(IInternalConfigSystem configSystem, Boolean initComplete)

   at System.Configuration.Internal.InternalConfigSettingsFactory.System.Configuration.Internal.IInternalConfigSettingsFactory.SetConfigurationSystem(IInternalConfigSystem configSystem, Boolean initComplete)

   at System.Web.Configuration.HttpConfigurationSystem.EnsureInit(IConfigMapPath configMapPath, Boolean listenToFileChanges, Boolean initComplete)

   at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters)

   at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters)

   at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)

   at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)

 

The interesting thing is not all of the web servers failed to work after installing the KB2844285, but only some of the web servers were impacted.

Troubleshooting

As we know, the above exception is usually thrown out while multi-version .Net Framework dll being loaded to the same W3WP.exe process unexpectedly.

 

Based on the metabase.xml, the above impacted websites are configured to running under .Net Framework V2.0, but Process Monitor log indicated that the above websites (W3WP.exe processes) did try to load .Net Framework 4.0 version dll while the problem occurred.

 

5:31:32.6327962 AM       w3wp.exe                19128      Load Image        C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll                SUCCESS               Image Base: 0x600c0000, Image Size: 0x8000

5:31:33.8998725 AM       w3wp.exe                19128      Load Image        C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll                SUCCESS               Image Base: 0x60070000, Image Size: 0x5000

5:31:34.0055090 AM       w3wp.exe                19128      Load Image        C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\webengine.dll   SUCCESS               Image Base: 0x6a2a0000, Image Size: 0x6d000

5:31:34.2439321 AM       w3wp.exe                19128      Load Image        C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\mscoreei.dll     SUCCESS               Image Base: 0x603b0000, Image Size: 0x66000

……

 

Root Cause

Still with the help of Process Monitor, we clarified that it is due to the AVIcode (AVIcode .NET Application Monitoring) module PerfMon.dll loaded the 4.0 version .Net Framework unexpectedly:

 

0      ntkrnlpa.exe            ntkrnlpa.exe +             C:\WINDOWS\system32\ntkrnlpa.exe

1      ntkrnlpa.exe            ntkrnlpa.exe +             C:\WINDOWS\system32\ntkrnlpa.exe

……

6      ntdll.dl                     ntdll.dll +           C:\WINDOWS\system32\ntdll.dll

7      advapi32.dll             advapi32.dll +  C:\WINDOWS\system32\advapi32.dll

8      advapi32.dll             advapi32.dll +   C:\WINDOWS\system32\advapi32.dll

9      mscoreei.dll             mscoreei.dll +   C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\mscoreei.dll

10    mscoreei.dll             mscoreei.dll +     C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\mscoreei.dll

11    mscoreei.dll             mscoreei.dll +   C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\mscoreei.dll

12    mscoree.dll             mscoree.dll +  C:\WINDOWS\system32\mscoree.dll

13    PerfMon.dll              PerfMon.dll +  C:\Program Files\AVIcode\Intercept\Agent\v5.6.248\PerfMon.dll

 

Solution

We can uncheck “Enable Monitoring” feature in “Intercept Management Console” of AVIcode as a temporarily workaround.

 

We also find that on the working servers AVIcode version is 5.7, while on the broken server AVIcode version is 5.6. After upgrading AVIcode from 5.6 to 5.7 on the broken servers, the problem is resolved completely.

 

 Regards,

 

YongKang Chen from DSI Team

Comments (0)

Skip to main content