1

ステージと本番の 2 つの環境にデプロイする必要がある Web サイトを構築しています。

web.config で 3 つの接続文字列が指定されています。

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=MyWebAppWaitWebDb;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\MyWebAppWaitWeb.mdf" providerName="System.Data.SqlClient" />

<add name="MyWebAppConnection_Stage" connectionString="Server=StageSQL01T;Database=MyWebAppWaitWeb;User Id=foo;Password=bar" providerName="System.Data.SqlClient" />

<add name="MyWebAppConnection_Prod" connectionString="Server=ProdSQL01;Failover Partner=ProdSQL02;Database=prd_SP_ExternalData;User Id=foo;Password=bar" providerName="System.Data.SqlClient" />

Web 発行ウィザードでは、ウィザードの「設定」部分にこれら 3 つの接続文字列がすべて表示されます。この場合、stage サーバーに公開できるように、stage を選択し、他の項目のチェックを外しました。

ここに画像の説明を入力

公開すると、「MyWebAppConnection_Stage_DatabasePublish」という新しい接続が追加されていることがわかりました

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=MyWebAppWaitWebDb;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\MyWebAppWaitWeb.mdf" providerName="System.Data.MyWebApp" />

<add name="MyWebAppConnection_Stage" connectionString="Data Source=StageSQL01T;Initial Catalog=MyWebAppWaitWeb;User ID=foo;Password=bar" providerName="System.Data.MyWebApp" />

<add name="MyWebAppConnection_Prod" connectionString="Server=ProdSQL01;Failover Partner=ProdSQL02;Database=prd_SP_ExternalData;User Id=MyWebAppWebApp;Password=bar" providerName="System.Data.MyWebApp" />

<add name="MyWebAppConnection_Stage_DatabasePublish" connectionString="Data Source=StageSQL01T;Initial Catalog=MyWebAppWaitWeb;User ID=foo;Password=bar" providerName="System.Data.MyWebApp" />

この 4 番目の接続文字列が生成されるのはなぜですか? さらに、この VS 2010 Publishing は、接続文字列を指定する Entity Code-first クラス用に持っている DbContext クラスとどのように互換性がありますか?

public class MyContextDb : DbContext
{
    public MyContextDb(): base("DefaultConnection")
    {
        Debug.Write(Database.Connection.ConnectionString);
    }
...

使用されている変換ファイルに応じて 1 つの接続文字列を単純に変更する従来の web.config 変換を使用したいと思います。

4

0 に答える 0