同じアプリの複数の物理サイトを使用して、MVC3 アプリを Azure にデプロイしたいと考えています。これを行うために ServiceDefinition.csdef の sites 要素を使用できるのは素晴らしいことです。
しかし、各サイトを異なるデータベースに接続したいと考えています。接続文字列は web.config にあります。vmにログインして手動で変更する以外に、これを行う簡単な方法はありますか?
同じアプリの複数の物理サイトを使用して、MVC3 アプリを Azure にデプロイしたいと考えています。これを行うために ServiceDefinition.csdef の sites 要素を使用できるのは素晴らしいことです。
しかし、各サイトを異なるデータベースに接続したいと考えています。接続文字列は web.config にあります。vmにログインして手動で変更する以外に、これを行う簡単な方法はありますか?
[コメントへの回答] - Windows Azure の場合 (実際にはどの PaaS ソリューションでも) 最初の経験則は、役割が開始されたときにすべての構成が準備されている必要があるということです。変更は保持されないためです。この必要な構成のため、Azure パッケージにデプロイするか、開始タスクから直接変更します。
[質問への回答] Windows Azure では、1 つの Web ロール内で複数のサイトを実行できますが、1 つの Web ロール内で複数のサイトが実行されているため、それらはすべて同じメインの web.config を共有する必要があります。これを行う方法は次のとおりです 。 http://msdn.microsoft.com/en-us/library/windowsazure/gg433110.aspx
要件は複数のデータベースを持つことであるため、web.config では、以下のように複数のデータベース接続文字列を追加できます。
$
<ConnectionString>
<Add name="DB1" connectionString="Data Source=DS1.........."/>
<Add name="DB2" connectionString="Data Source=DS2.........."/>
</ConnectionString>
上記が完了したら、ASP.NET コードでこれらの接続文字列を列挙し、特定の例で説明されているように特定のサイトで使用できます。
http://www.dotnetspark.com/kb/780-how-to-use-multiple-database-connection.aspx
最後に、開発中に Web ロールを使用して複数のサイトを追加でき、web.config で特定の DB 接続を指定することもできるため、何か不足していない限り、スタートアップ タスクを使用したり、VM で何かをしたりする必要はまったくないと思います。ここ。
VM の起動時に web.config ファイルに移動して変更/移動するスタートアップ タスクを登録できます。少し面倒ですが、手でやるよりすっきり!
http://msdn.microsoft.com/en-us/library/windowsazure/gg456327.aspx