Summary

Azure App Service customers, who have enabled any of the following features in Azure:

  • Authentication / Authorization

  • AppService Push

  • MySQL in App

  • Cross-Origin Resource Sharing (CORS)

Have reported this exception occurring in their instrumented Web App(s):

Failed to initialize the AppDomain:/LM/W3SVC/123456789/ROOT
Exception: System.InvalidOperationException
Message: The configuration system has already been initialized.

This issue occurred after a recent Azure App Service update triggered a timing issue between the EasyAuth module loaded by the App Service, and the AppDynamics Agent bootstrap mechanism. This exception prevents the instrumented application from initializing when starting up.  

Affected Software

This issue occurs when the following conditions are met: 

  • These features are enabled in Azure:

    • Authentication / Authorization

    • AppService Push

    • MySQL in App

    • Cross-Origin Resource Sharing (CORS)

  • Using AppDynamics >= 4.5.x and >= 20.x Site Extensions

  • Instrumenting .NET Full Framework Web Apps

Notes:

  • Customers using AppDynamics = 4.4 Site Extensions are not affected

  • Customers instrumenting .NET Core applications in Azure are not affected

Workaround

Customers should add or update the AppDynamicsConfig.json file embedded with their Azure Web Apps to include the following “profiler” section:

{
   "controller":{
      "host":"yourcontroller.com",
      "port":443,
      "account":"accountName",
      "password":"password",
      "ssl":true,
      "enable_tls12":true
   },
   "application":{
      "name":"MyApp",
      "tier":"Mytier"
   },
   "profiler":{
      "agentBootstrapInstrumentations":[
         {
            "enabled":true,
            "fullmethodsignature":"System.Void System.Web.Hosting.PipelineRuntime.InitializeApplication(System.IntPtr)"
         }
      ]
   }
}
CODE

Resolution

The AppDynamics Engineering team has implemented a fix that is now available in the 20.12 version of the .NET Agent. Additionally, we are updating internal testing procedures to ensure that any similar incompatibility issues are found and mitigated before wide release in Azure.

Revision History 

VersionPublish DateSummary of Changes
V1

Initial publication of the support advisory.
V2

Updated to show that any of the features mentioned (Auth, Push, MySQL, CORS) result in the EasyAuth module getting loaded into the process and causing an incompatibility with the .NET Agent.
V3

Updated to reflect that the patched build was released in 20.12.