サポートアドバイザリ: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 でリリースされたことを反映するように更新しました。 |