2012-05-03 9 views
1

同じアプリケーションの複数の物理サイトを使用してMVC3アプリケーションをAzureに配備したいと考えています。 これを行うにはServiceDefinition.csdefのsites要素を使用できます。異なるWeb.configを持つ1つのwebroleのサイトの複数のインスタンス

しかし、私はそれぞれのサイトを別のデータベースに接続したいと思っています。接続文字列はweb.configにあります。これを行う簡単な方法はありますか?VMにログインして手動で変更する以外にも簡単ですか?

答えて

1

VMの起動時にweb.configファイルを移動したり移動したりするための起動タスクを登録できます。ちょっと面倒ですが、手で行うよりもきれいです!

http://msdn.microsoft.com/en-us/library/windowsazure/gg456327.aspx

+1

Windows Azure VMは永続化されないため、RDPからVMへの操作はまったく推奨されません。また、VMが準備完了し、ロールが既にweb.configの変更を行うまでは、IISアプリケーションでは使用できません。最善の策は、自分の役割の中に直接ソリューションを作成することです。 – AvkashChauhan

+0

@Avkashコード内の別のソースから接続文字列を取得することを意味しますか? – RolandG

1

[あなたのコメントへの回答] - Windowsのアズール(実際にはどんなのPaaSソリューションで)で、親指の最初のルールは、役割が起動時にすべての設定を準備する必要がありますということで、親指の第二のルールがありますRDPアクセスを介してVM内で何も行われないようにしてください。なぜなら、変更は持続しないからです。 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> 

http://www.dotnetspark.com/kb/780-how-to-use-multiple-database-connection.aspx

:あなたはこれらの接続文字列を列挙し、与えられた例で説明したように、特定のサイトで使用することができますあなたのASP.NETコードでは、上記の持っています

最後に、開発中にWebロールを持つ複数のサイトを追加することもできますし、特定のDB接続をweb.configで指定することもできますので、起動タスクをまったく使用する必要はないと思います。ここに何かがありません。