14

"オンプレミス" の世界では、Windows サービスのようなアプリケーションを作成するとき、従来は App.config ファイルを使用して、データベース接続文字列から WCF エンドポイント情報まで、アプリケーションに関するさまざまな構成情報を格納していました。

Azure ワーカー ロールの世界では、"ロールの" 情報が含まれていると言われる .cscfg ファイルが表示されます。

これらのファイルがアプリケーションの構成を補足するものなのか、それとも App.config ファイルを完全に置き換えるものなのか、私にはわかりません。これら 2 つのファイルは、Azure Worker ロールを構成するためにどのように機能しますか?

4

2 に答える 2

17

非常に基本的な説明:

概念的には同じです。従来のアプリケーションでは、app.config ファイルを使用して、アプリケーションに関連するさまざまな設定を定義します (appSettings セクション)。同様に、cscfg ファイルを使用して、クラウド アプリケーションに関連するさまざまな設定を定義します (ConfigurationSettings セクション内)。app.config ファイルと同様に、cscfg ファイルでその他のもの (クラウド アプリケーションのインスタンス数など) を定義できます。

必要に応じて、app.config ファイルで一部の設定を定義することもできますが、app.config ファイルは「パッケージ化」されて展開されるため、設定を変更するには、再パッケージ化する必要があることに注意してください。アプリケーションを作成してデプロイします。ただし、アプリケーションを再パッケージ化して再デプロイすることなく、ポータルまたはサービス管理 API を使用してその場で cscfg ファイルの設定を変更できます。たとえば、設定ファイルでデータベース接続文字列を定義しているシナリオを考えてみましょう。app.config でそれを指定した場合、それを変更するには、app.config ファイルを変更する必要があります --> アプリケーションをビルドします --> アプリケーションを公開します。cscfg ファイルの場合は、ポータルでこの値を変更するだけです。

于 2013-01-16T13:29:19.797 に答える
13

Web/Worker ロールの場合、従来の構成ファイル (app/web.config) は、オンプレミス展開の場合と同様に機能し続けます。ただし、このファイルはサービス パッケージに含まれていること、つまり展開の一部であることを知っておくことが重要です。

これは、アプリケーションを再デプロイしない限り、app/web.config の設定を変更できないことを意味します。一方、ServiceConfiguration.cscfg は、実際のサービス パッケージの隣にあるクラウド サービス デプロイ スロット レベルで定義されるものです。これは、アプリケーションを再デプロイすることなく、この構成ファイルを変更できることを意味します。RoleEnvironment.GetConfigurationSettingValueこれらの設定には、 ( と同様に)を呼び出すことによって、アプリケーションからアクセスすることもできますConfigurationManager.AppSettings

オンプレミスと Windows Azure の両方で動作するアプリケーションの構築を検討している場合は、Microsoft.WindowsAzure.ConfigurationManager パッケージの使用を検討してください。アプリケーションが実行されている場所に基づいて、cscfg または app/web.config が自動的に選択されます。

ヒント: RoleEnvironment.Changing/Changed イベントをサブスクライブすると、この構成ファイルへの変更をインターセプトできます。これを処理して、たとえばコードで web.config を更新できます (ここで説明します)。

于 2013-01-16T13:34:08.930 に答える