3

我正在 Visual Studio 2012 RC 中开发一个 ASP.NET MVC 4 / .NET 4.0 Web 应用程序,该应用程序旨在使用 SQL Azure 数据库在Windows Azure上运行。该解决方案由Team Foundation Service进行源代码控制,我已将后者设置为在我签入时自动部署到 Azure。

我想知道的是,当项目部署在 Azure 上时,如何转换我的数据库连接字符串(在 Web.config 中)以便它们引用生产 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

我认为您会为不同的环境创建多个 web.config 文件

如何:在部署 Web 应用程序项目时转换 Web.config

这里列出了一篇关于如何在 TFS 自动部署中结合它的博客文章

于 2012-08-10T06:40:55.710 回答
0

如果只有您(或所有开发人员都有相同的连接字符串),并且您不介意源代码管理中的连接信息,这很容易。Azure 将使用您在 Azure 管理门户中网站部分的配置下输入的连接字符串信息覆盖您的连接字符串。只要确保名称相同即可。

因此,例如,如果您的 web.config 具有 name="DefaultConnection" connectionstring="您的本地数据库、受信任的连接等,等等".....只要您在 Azure 中的连接字符串信息具有名称“DefaultConnection” (我假设它指向 Azure 数据库),它会工作。

于 2013-04-14T06:22:03.417 回答