首页 文章

ASP.NET MVC 4 - 如何在通过Team Foundation Service部署到Azure时转换数据库连接字符串?

提问于
浏览
3

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

我想知道的是,如何转换我的数据库连接字符串(在Web.config中),以便在Azure上部署项目时它们引用 生产环境 SQL Azure服务器?在我的开发框中,我使用了本地SQL Express实例 .

如果有更好的方法,我对其他部署方法(比TFS自动服务)更开放 .

EDIT: 我正通过Entity Framework 5.0.0 RC连接到数据库 .

3 回答

  • 0

    您还可以使用多个ServiceConfiguration:

    enter image description here

    然后,不是在web.config中保存连接字符串,而是将其添加为ServiceConfiguration中的设置:

    enter image description here

    由于您有多个配置,因此可以为每个配置赋予 SomeConnectionString 值(这意味着您可以填写测试,开发和 Cloud 配置文件的数据库设置) .

    最后,在您的代码中,使用ServiceConfiguration中的连接字符串创建新上下文的工厂类会更容易:

    public static class MyDataContextFactory
    {
        public static MyDataContextEntities Create()
        {
            return new MyDataContextEntities(RoleEnvironment.GetConfigurationSettingValue("SomeConnectionString"));
        }
    }
    
  • 3

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

    如何:Transform Web.config When Deploying a Web Application Project

    有一篇关于如何在TFS自动部署中将其组合在一起的博客文章here

  • 0

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

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

相关问题