2011-11-11 3 views
3

SQL Azureデータベースと通信するAzure Webロールを操作する。現在、SQL Azureデータベース用のedmxファイルを生成すると、接続文字列+ユーザー名パスワードがweb.configファイルに追加されます。私は検索を行い、web.configを暗号化する方法についていくつかのエントリがありました/ devとprodを切り替えるためにそれを使う方法はありましたが、web.configからconn文字列を動かすことを考えています。接続文字列を持つ適切な場所

接続文字列をサービス定義ファイルに移動する方法はありますか?それは推奨されるアプローチですか?接続文字列を他の場所に移動すると、edmxを使用してobjectcontextクラスを生成できます(既存のコードでは、自動的に生成されたエンティティクラスが使用されるため)。

答えて

3

接続文字列をサービス設定ファイルに移動することをお勧めします。これにより、再デプロイメントを行わずに別のSQL Azureデータベースに切り替えることができます。再配置なしの別のSQL Azureデータベースへの切り替えは、クラッシュした、またはタイムアウトしていて、別のサーバー上でバックアップを取ってから切り替えるときに便利です。

ただし、接続文字列を個別に指定することでオブジェクトコンテキストを初期化する必要があります。

は.cscfgに設定を読むためにあなたはアズール、次のコードの下で実行しているかどうかを確認するためにRoleEnvironment.IsAvailableを使用します。

VARたconnectionString = RoleEnvironment.GetConfigurationSettingValue(「のConnectionString」);

+0

visual studioがedmxファイルを生成すると、エンティティ接続文字列も追加されます。 web.configから削除する必要がありますか?自動的に生成されたオブジェクトコンテキストを使用して、コンストラクタに文字列を渡すことはできますか?サンプルコードへのポインタは素晴らしいでしょう... – user529265

+0

また、ユーザー名とパスワードをcscfgファイルにも保存する必要がありますか?暗号化できるか? – user529265

+1

Azureエミュレータなしでテストしない限り、Web.configに接続文字列を保存する必要はありません。 .configと.cscfgファイルの管理に関する私のブログエントリを調べて、Azureで環境を管理する方が好きかどうかを確認してください。http://www.paraleap.com/blog/post/Managing-environments-in-a-分散Azure-or-other-cloud-based-NET-solution.aspx – Igorek

1

サービス設定ファイル(.cscfg)とWeb.configの両方で接続文字列を使用することをお勧めします。 Azure環境の外でWebロールを実行できるようにするには、最初からお勧めします。長期的には生産性に影響を与えます。特に小さな変更を行い、検証するためにプロジェクトをローカルで実行する必要のある日々の開発では特にそうです。 IIS、ExpressまたはCassini(Asp.net envのコードネーム)でローカルにサービスを実行するのは、現時点ではローカルAzureエミュレータ(devFabric)でプロジェクトを実行するよりも高速です。 ユーザー名とパスワードの保存に関する2番目の質問について。それはあなたが探しているセキュリティのレベルに依存します。 .cscfg内に保存された情報は、httpsで送信され、アプリケーションが保護されるのと同じ方法でAzureクラウドで保護されます。つまり、私はテスト用のプロジェクトにTESTアカウントの資格情報を保存し、展開時に.cscfgにPRODUCTIONストレージアカウントの資格情報をパブリック/プロダクションサービスに入れるだけです。

関連する問題