3

Visual Studio 2012 RC で ASP.NET MVC 4 / .NET 4.0 Web アプリケーションを開発しています。これは、SQL Azure データベースを利用してWindows Azureで実行することを目的としています。ソリューションはTeam Foundation Serviceによってソース管理されており、チェックインするたびに Azure に自動的にデプロイされるように後者を設定しました。

私が疑問に思っているのは、データベース接続文字列 (Web.config 内) を変換して、プロジェクトが Azure にデプロイされたときに運用 SQL Azure サーバーを参照するようにするにはどうすればよいですか? 私の開発ボックスでは、ローカルの SQL Express インスタンスを利用しています。

これを行うためのより良い方法があれば、(TFS 自動サービス以外の) 他の展開方法を受け入れます。

編集: Entity Framework 5.0.0 RC 経由でデータベースに接続しています。

4

3 に答える 3

3

複数の ServiceConfigurations を使用することもできます。

ここに画像の説明を入力

次に、接続文字列を web.config に保存する代わりに、ServiceConfiguration の設定として追加します。

ここに画像の説明を入力

複数の構成があるため、構成ごとにSomeConnectionStringに値を指定できます (つまり、テスト、開発、およびクラウド プロファイルのデータベース設定を入力できます)。

最後に、コードでは、ServiceConfiguration の接続文字列に基づいて新しいコンテキストを作成するファクトリ クラスを作成する方が簡単です。

public static class MyDataContextFactory
{
    public static MyDataContextEntities Create()
    {
        return new MyDataContextEntities(RoleEnvironment.GetConfigurationSettingValue("SomeConnectionString"));
    }
}
于 2012-08-10T06:59:38.980 に答える
0

それがあなただけ (またはすべての開発者が同じ接続文字列を持っている) で、ソース管理の接続情報が気にならない場合は、簡単です。Azure は、構成の下の Web サイト セクションの Azure 管理ポータルで入力した接続文字列情報で接続文字列を上書きします。名前が同じであることを確認してください。

たとえば、web.config に name="DefaultConnection" connectionstring="your local db, trusted connection, etc" がある場合、Azure の接続文字列情報に "DefaultConnection" という名前が付けられている限り、 (Azure データベースを指していると思います)、動作します。

于 2013-04-14T06:22:03.417 に答える
0

さまざまな環境用に複数の web.config ファイルを作成すると思います

方法: Web アプリケーション プロジェクトの配置時に Web.config を変換する

TFS 自動展開でこれを組み合わせる方法については、ここにリストされているブログ記事があります。

于 2012-08-10T06:40:55.710 に答える