サポートアドバイザリ:Azure Web アプリケーションでの InvalidOperationException

このドキュメントでは、AppDynamics 製品のサポートアドバイザリについて説明します。

概要

Azure で次の機能のいずれかを有効化している Azure App Service のお客様。

  • 認証および承認

  • AppService プッシュ

  • アプリケーションでの MySQL

  • Cross-Origin Resource Sharing(CORS)

インストルメント化された Web アプリケーションで発生した以下の例外を報告しました。

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

この問題が発生したのは、App Service によってロードされた EasyAuth モジュールと AppDynamics エージェント ブートストラップ メカニズムとの間におけるタイミングの問題が、最近の Azure App Service のアップデートによってトリガーされた後です。この例外により、インストルメント化されたアプリケーションが起動時に初期化されなくなります。

影響を受けるソフトウェア

この問題は、次の条件に適合する場合に発生します。

  • Azure では、次の機能が有効になっています。

    • 認証および承認

    • AppService プッシュ

    • アプリケーションでの MySQL

    • Cross-Origin Resource Sharing(CORS)

  • AppDynamics 4.5.x 以降のバージョンおよびサイト拡張機能 20.x 以降のバージョンの使用

  • .NET フルフレームワーク Web アプリケーションのインストルメント化

注:
  • AppDynamics 4.4 のサイト拡張機能を使用しているお客様は影響を受けません

  • Azure の .NET Core アプリケーションをインストルメント化しているお客様は影響を受けません

回避策

お客様は、Azure Web Apps に組み込まれた AppDynamicsConfig.json ファイルを追加または更新し、次の "profiler" セクションを含める必要があります。

{
"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)"
}
]
}
}

解像度

AppDynamics 設計・導入チームが修正を実施し、.NET エージェントの 20.12 バージョンで利用可能になりました。さらに、Azure での広範なリリースの前に同様の非互換性の問題が検出され、影響が緩和されるように、内部テストの手順を更新しています。

マニュアルの変更履歴

Version公開日変更点の概要
V1

2020 年 12 月 11日

サポートアドバイザリの初版。
V2

2020 年 12 月 18 日

記載されている機能(Auth、Push、MySQL、CORS)のいずれかを実行すると、EasyAuth モジュールがプロセスにロードされ、.NET エージェントとの非互換性が生じることを示すように更新しました。
V3

2020 年 12 月 18 日

パッチを適用したビルドが 20.12 でリリースされたことを反映するように更新しました。