发布Web时指定连接字符串

时间:2013-02-25 18:27:16

标签: visual-studio-2012 publish

我正在构建一个我需要部署到两个环境的网站:stage和prod。

我在web.config中指定了三个连接字符串。

<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向导中,我在向导的“设置”部分中显示了所有这三个连接字符串。所以在这种情况下我选择了stage并取消了其他的检查,以便我可以发布到我的舞台服务器。

enter image description here

发布后,我发现它添加了一个名为“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);
    }
...

我认为我会想要使用传统的web.config转换,它只是根据正在使用的转换文件改变一个连接字符串。

0 个答案:

没有答案