6

我有一个在Azure上运行的ASP.NET MVC 3应用程序。它还使用SQL Azure作为数据库。管理MVC3 Azure应用程序的多个web.config文件

我想将此应用程序部署到不同的实例(测试,演示,多个制作),每个实例都需要它自己的唯一SQL数据库。

我知道,使用新的Azure Tools更新,您可以管理多个服务配置。这很好,几乎可以解决我的问题。唯一的问题是项目的MVC部分中的web.config文件中的SQL连接字符串。

我希望与多服务配置功能具有完全相同的功能,但要为SQL连接字符串执行此功能。

感谢您的帮助!

回答

5

.Net configuration transformations应该做的工作。与Azure服务配置类似,将为要部署到的每个实例创建单独的Web.ConfigurationName.config文件。使用适当的配置(测试,演示等)构建解决方案将在Web.config中插入正确的“实例”配置值。

+0

这是我使用的方法,它工作得很好。 – 2012-03-09 07:31:03

+0

如何诚实地推荐在配置文件中编写XLS转换?配置文件已经足够大了。 – 2015-03-12 22:16:10

3

我通常将我的SQL连接字符串保存在ServiceDefinition。*。cscfg文件中。这样您就可以在运行的实例中编辑它们,这对于进行VIP交换非常有用。

如果你在开发机器模拟器外测试,这是相当简单,在配置写一个抽象:

class AzureConfig : IConfig 
{ 
    public string GetConnectionString(string name) 
    { 
    get 
    { 
     return RoleEnvironment.GetConfigurationSettingsValue(name); 
    } 
    } 
} 

class OnPremConfig : IConfig 
{ 
    public string GetConnectionString(string name) 
    { 
    get 
    { 
     return ConfigurationManager.ConnectionStrings[name].ConnectionString; 
    } 
    } 
} 

然后设置你的IoC容器检查RoleEnvironment.IsAvailable和返回相关的类型。

相关问题